nkfってなんだ

118ななし
垢版 |
NGNG
iconv の "i" って "imouto" の事?
NGNG
>>118
そうだよバカ
120山崎渉
垢版 |
NGNG
(^^)
121あぼーん
垢版 |
NGNG
あぼーん
122名無しさん@お腹いっぱい。
垢版 |
NGNG
判別だけの動作も出来て、utf8も扱えるフィルタきぼんぬ

qkcをutf8対応にするか、nkfに判別機能を付けるかかなあ。
NGNG
続きはこちらで

THE他力本願
http://pc.2ch.net/test/read.cgi/unix/1030870657/l50

くだらない質問はここに書き込め!なんでもアリ24
http://pc.2ch.net/test/read.cgi/unix/1053748966/l50
NGNG
nkfのソース覗いてみたら、--debugオプションハッケソ
これで判別の用は足りそう。

somewhere% nkf --debug hoge.txt > /dev/null
UTF-8
somewhere%

まあこれに免じてageちったのは許してちょ
125あぼーん
垢版 |
NGNG
あぼーん
NGNG


  UNIX何でも相談室(無料)


  OI2O-69-OI96


NGNG
test
NGNG
すげえ、1年以上意味のあるカキコのないスレッドだよ
NGNG
本当だ
珍しいスレだ
NGNG
うん、記念ぱピコだ
NGNG
UNIX板では, そんなスレぜんぜん珍しくないんだよもん.
過疎だよもん?
132名無しさん@お腹いっぱい。
垢版 |
NGNG
底上げ
NGNG
あーあ
やっちゃったよこの人
NGNG
二歩ですけどね。
135名無しさん@お腹いっぱい。
垢版 |
NGNG
うまちょびれ〜っ!
136名無しさん@お腹いっぱい。
垢版 |
NGNG
ioscan -nkf

これじゃないの?
NGNG
kcc が最強なわけだが…
138愛・昆布 ◆qvkminQt6g
垢版 |
2005/03/28(月) 23:20:29
ぼくわこんぶがだいすきですぼくがこんぶがすきなところわおいしいからこんぶはすきですおでんのこんぶはぜんぶたべてしまっておとおさんにおこらいましたもうしないようにしないとおとおさんがこわいのでしません。
2005/03/29(火) 02:41:03
そのままアルジャーノンで
140名無しさん@お腹いっぱい。
垢版 |
2005/04/16(土) 07:42:34
iconvやuconvがあるからもうnkfとかqkcとか日本ローカルなものはいらないね
2005/04/16(土) 07:46:48
すごいね.2001年からのスレかよ.
2005/04/16(土) 08:12:36
>>140
iconv や nkf, qkc を一緒くたに比較しちゃう時点でアレとかいうのは置いといて、
uconv ってなんじゃい?
2005/04/16(土) 08:21:26
ぐぐれば?
2005/04/16(土) 10:23:43
Non Korea Future
2005/04/16(土) 12:19:02
あがっちまったものはしょうがない、
文字コード変換総合スレということにでもしてみるか
2005/04/16(土) 12:36:17
iconv糞っていってるやつは、libiconvにパッチを当てるって事を
思いつかないんだろう。
2005/04/16(土) 15:50:28
どのOSでもパッチをあてられるというわけでもなく。
2005/04/16(土) 17:26:19
自動認識の要求もそれなりにあるからなあ。
まあでもiconvに成功するまでいろんなencodingで試すというやりかたも
なくもないか。gonzuiはそうやっているらしい。
2005/04/16(土) 18:07:30
>>146
パッチ当てなきゃ糞っていうなら十分糞だと思うが?
2005/04/17(日) 18:19:22
nkfのnってなんで?
2005/04/17(日) 18:34:19
nantonaku
kayuitokorowo
funsaishita
2005/04/30(土) 13:09:03
Cのライブラリとしてつかえるのって、iconvとwkf以外にはなにがあります?
2005/06/11(土) 09:57:32
上書きしようとして -O をつけると無変換にならなくねが?おらがのバージョン2.04だども。
154名無しさん@お腹いっぱい。
垢版 |
2005/06/12(日) 08:27:41
age
155153
垢版 |
2005/06/13(月) 09:09:31
ヤバイ上書きは--overwriteらしい。今は反省している。
156名無しさん@お腹いっぱい。
垢版 |
2005/12/31(土) 17:24:03
> あいかわらず河野がかかわってるんじゃん。

tar xvf nkf203.tar # 最新版
grep -R . void
nkf.c: void (*status_func)PROTO((struct input_code *, int));
...
nkf.c: ** void@merope.pleiades.or.jp (Kusakabe Youichi)
2005/12/31(土) 17:55:31
fujitsu最大の成果物ということでよろしいでしょうか?
158名無しさん@お腹いっぱい。
垢版 |
2005/12/31(土) 18:02:43
でも河野さんはsonyでしょ。(当時)
2006/01/13(金) 15:10:58
--guess はバグってる?

% nkf --version
Network Kanji Filter Version 2.0.5 (2005-04-10)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa),2000 S. Kono, COW, 2002-2005 Kono, Furukawa, Naruse
% nkf --guess utf8
UTF-8
% nkf --guess utf8 utf8 utf8
utf8:UTF-8
utf8:EUC-JP
utf8:EUC-JP
160naruse
垢版 |
2006/01/16(月) 19:58:38
ごめんなさい、バグってます。
CVSでは nkf.c rev:1.71 治っておりますので、よろしければそちらをお使いください。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/nkf/nkf-2/nkf-utf8/nkf.c?rev=1.89&view=log#rev1.71
なお、2.0.6は桜が咲くころには出す予定です。
2006/01/16(月) 20:40:22
>>160
ああ!思い出した。 ruby-dev に出てたのと同じ問題ですね。
桜が咲くのを待ちつつ、修正版を使いますです。どうもです。
162成瀬 ◆NBGqNARUSE
垢版 |
2006/03/11(土) 14:09:50
えー、というわけで、そろそろ桜の花も咲きそうなので、
2.0.6を出したいなぁと思っているわけですが、迷っているのが一つ。

「nkf --overwrite が mtime を更新しない」
http://lists.sourceforge.jp/mailman/archives/nkf-dev/2006-March/000010.html
って直した方がいいですか?
数行の修正でいいはずなのですが、どちらがお好みなのかなーと。

ついでに、nkf 2.0.6での文字コードのマッピングは以下の通りになりますので、ご意見のある方はお早めに。
http://nkf.sourceforge.jp/ucm/
2006/03/11(土) 16:45:41
modify したんだから更新しといた方がいいんじゃない?
わりとどうでもいいけど。
164名無しさん@お腹いっぱい。
垢版 |
2006/03/11(土) 16:48:26
過疎スレに書き込むなボケ
2006/03/11(土) 18:41:13
迷ったときはオプションを追加して泥沼化
2006/03/11(土) 19:04:33
デフォルトでmtimeを更新するようにしたら、
cp -p を真似して、mtimeを更新しない -p オプションを追加する気ではいます。

>>164
わざわざageてくださってどうも、しかもツンデレで。
2006/03/12(日) 20:21:51
>>166
--overwrite が長いオプションなので、 (tar 風に) --preserve とかがいいかなあ。
一文字オプション文字空間はそれほど広くないでしょう。
2006/03/12(日) 23:32:07
http://lists.sourceforge.jp/mailman/archives/nkf-dev/2006-March/000016.html

によると、--overwrite がatime/mtimeを保持するのは意図した動作らしいので、手をつけないことにしました。

というわけで、
* touchすれば更新できるのでそのままにしておく
* 更新するoverwriteを別途定義する
* tar風に --modification-time と --access-time を追加
かなぁ・・・。

perl/rubyの真似をして-i[extension]とかすると、既存のオプションにぶつかるのが悩み。
2006/03/12(日) 23:42:37
qkcの-jがくさってるってのは、具体的にどんな場合?
2006/03/13(月) 00:08:33
>>169
おそらく、デフォルトでエスケープシーケンスが ESC $B と ESC (J になっていることではないかと。
/Jでなく、/BJを指定すればいいのですけれどね。

http://hp.vector.co.jp/authors/VA000501/htmlhelp/jisesc.html
http://hp.vector.co.jp/authors/VA000501/htmlhelp/cmdopt.html
171167
垢版 |
2006/03/13(月) 00:35:36
意図してやってるなら仕方ないですね。
とりあえずそのままで、タイムスタンプ変えたい人が多く出てきたらオプション新設、
とかでもいいように思います。

そういえば先日 Subversion でファイルを nkf --overwrite してからコミットしようとしたら
一向にコミットできなくてはまってしまった。
--overwrite のタイムスタンプの件は man に書いてなかったですよね?
2006/03/13(月) 00:54:34
タイムスタンプの件はマニュアルには書いてありませんね。
とりあえずマニュアルは更新しておくことにします。
173167
垢版 |
2006/03/13(月) 00:55:26
すんません、お手数かけます。
174167
垢版 |
2006/03/13(月) 10:10:02
思い出した。

今更なので、変えてくれという話ではなくて、素朴な疑問なのですが、
「--overwrite」って一般的なもんなんすかね?
GNU sed だと --in-place だったり Perl や Ruby だと -i ですよね。
2006/03/13(月) 15:01:02
別名の案を考えるのにフィルタ系のコマンドを一通り調べてみたのですが、
* 相当するコマンドが無い
* デフォルトが上書き
がそもそも大多数で、わたしが見つけられたのはPerl/Rubyの-i[=extension]くらいでした。
sedは見たのですが、GNU sedには-i/--in-placeがあるのですか。
--overwriteを用いているのはnkfくらいのようですね。

-iは既存のオプションと衝突しているため使えないとして、
--in-placeを更新するoverwriteにするというのはありだと思います。
というか、--in-place[=SUFFIX] の拡張子を指定してバックアップはわたしも欲しいので、
この方向で実装してみます。

上書きを行うロングオプションで--in-place以上に有名なものってありませんよね?
なるべく長いものに巻かれておきたいのですけれど。
2006/03/21(火) 22:55:47
2.0.6 beta1 を出しました。
http://sourceforge.jp/projects/nkf/

ところで、今 nkf は -m がデフォルトで有効になっています。
これを、デフォルトで -m0 にしたいと思っているのですが、どう思います?
一応、コンパイルオプションでデフォルト -m / -m0 を切り替えられるようにして、
お茶を濁しつつ変えてしまおうかとも思っているのですけれど。

ちなみに、同様に意図しない変換を引き起こしうる、デフォルトが -X な件は、
--ic / --oc ではデフォルトで -x を含むようにしています。
177名無しさん@お腹いっぱい。
垢版 |
2006/06/03(土) 16:36:10
SJISで全角'−'記号の0x817CをUTF-8Nの0xEFBC8Dに変換する
オプションを教えて欲しい。
普通にC:\>nkf -S -w test.sjs > test.utf8nとかしても
0xE28892に変換され、他のソフトに読み込むときうまく
読み込まれず苦労しています。
TeraPadで読み込んでUTF-8Nで変換すると0xEFBC8Dに変換されます。
あと、全角の'¥'記号が半角の'\'記号になってしまうのも。
2006/06/04(日) 01:42:56
人に聞くよりソース読んじゃった方が早くね?
2006/06/04(日) 10:55:14
>>177
nkfのversionは?

iconv使った方がいいかもね。
180177
垢版 |
2006/06/04(日) 17:35:32
nkfのVersionはたしか2.07betaだと思う。
Vectorでダウンロードしたやつで、
色んなVersionが同梱されていました。
因みにiconvってWindowsで使えるの?
2006/06/04(日) 20:39:13
それだとあなたの言う動作になっているね。
2.0の頃は¥のままだったんだけど。

iconvはcygwinに入っているよ。
2006/06/04(日) 22:30:08
--cp932
183177
垢版 |
2006/06/05(月) 08:47:49
>>182
nkf -S -w --cp932 infile.sjis > outfile.utf
で望の結果となりました。アリガトウゴザイマス。
184名無しさん@お腹いっぱい。
垢版 |
2006/06/05(月) 09:15:25
>>137
今更ながらだが、kccのコードを弄って簡易spamフィルタに使ってるぞ。
Subjectに、8ビット文字入れてくる汚物メールを検出するフィルタ。

nkfだとコードがでかすぎて弄れぬ。
2006/06/16(金) 03:28:54
今更だけどフォロー
>>177 >>183
現在の nkf はデフォルトでは ASCII の範囲はそのまま、
それ以外はJISのマッピングに準拠したマッピングにしています。
Windows の変換と同じ変換、すなわち CP932 互換の変換をしたい場合は、
--cp932 で行うことができます。
なお 2.0.6 では nkf --ic=CP932 --oc=UTF-8 と、iconv っぽく使えます。

>>179 >>180
行う変換がどのマッピングなのか把握しているならば iconv が適当です。
Windows なら香り屋さんのが楽 http://www.kaoriya.net/#LIBICONV

>>184
*_getc -> kanji_convert -> *_iconv -> *_conv -> *_oconv -> *_putc
という流れを把握すれば、多少はいじるのが楽になるかも。
グローバル変数の嵐ですけどね・・・。

> Subjectに、8ビット文字入れてくる汚物メールを検出するフィルタ。
ならば、*_getc の追加でいけるかな。
grep -E '[^[:cntrl:][:print:]]' で済みそうだけど。
2006/12/08(金) 02:57:52
IDに注目。
なんかうれしい。
187186
垢版 |
2006/12/08(金) 03:00:07
俺はバカだ。ここはUNIX板じゃないか(泣
(ちなみに俺の今の -> "nkf2PDI3")
2006/12/09(土) 03:04:13
おめw
189名無しさん@お腹いっぱい。
垢版 |
2007/01/19(金) 11:03:37
バグでしょか? 2.0.7 と CVS 先端で再現します。

1. MIME デコードしたりしなかったりする

% nkf -e
あいうえお =?iso-2022-jp?b?GyRCJCIbKEI=?=
あいうえお =?iso-2022-jp?b?GyRCJCIbKEI=?=
% nkf -e
こんにちは =?iso-2022-jp?b?GyRCJCIbKEI=?=
こんにちは あ

2. UTF-8 だと MIME デコード部分が化ける

% nkf -w
あいうえお =?iso-2022-jp?b?GyRCJCIbKEI=?=
あいうえお $"
% nkf -w
こんにちは =?iso-2022-jp?b?GyRCJCIbKEI=?=
こんにちは =?iso-2022-jp?b?GyRCJCIbKEI=?=
2007/01/19(金) 12:18:29
MIMEのオプションも指定しなきゃだめだよ
191189
垢版 |
2007/01/19(金) 13:37:09
>>190
>>190 さんは MIME のオプション指定で再現しなくなりましたか?

NKF 1.9以降は MIME のオプション (-m) はデフォルトで有効になっていると思います。
試しにそれぞれに -m オプションを付けてみましたが、同じ出力結果となりました。
2007/01/20(土) 00:07:52
nandedaro
kizukebakokanni
fuzisanga...
2007/01/20(土) 00:26:24
あいうえお =?iso-2022-jp?b?gqA=?=
2007/01/21(日) 07:32:24
とりあえず現状を。
1. エンコーディングの確定前にMIME文字列が出現した場合認識しない
2. 一部のエンコーディングでMIME encodeされたJISな文字列が文字化け
の二つの問題と認識しています。
後者は手元で修正しました。
前者は現在ちとてこずっています。
回避方法としては、エンコーディングがわかる場合は明示的に指定する、になります。
195189
垢版 |
2007/01/21(日) 14:59:59
前者の方ですが、確かに入力のエンコーディングを指定したらうまくいきました。
自動判定が絡んでくるとなると厄介そうなのはなんとなく想像つきますので、
あまり期待しないで期待しておきます(?)。
対応ありがとうございます。
196189
垢版 |
2007/01/30(火) 16:59:22
CVS 先端で後者の方が直っていました。ありがとうございました。
2007/11/17(土) 12:16:02
>>191
> NKF 1.9以降は MIME のオプション (-m) はデフォルトで有効になっていると思います。

まじかよ
なんだよ、このウンコ仕様は。
さよなら、nkf。
2007/11/18(日) 06:47:45
>>197
わたしも微妙な仕様で正直変えたいと思っているのですが、
調べたところどうも1.7あたりから導入されているらしく、
いまさらそう簡単には変えられないというのが現状です。

っと思っていたのですが、Ruby1.9にあわせてnkfを2.1にし、
そこでこの手の変えづらかった仕様に手を入れてしまうのもありな気がしてきました。
少し検討してみます。
199197
垢版 |
2007/11/18(日) 12:20:20
真面目なレスありがとう。
過去のnkf利用scriptが走馬灯のように思い浮かんで欝になりました。

-Xがdefaultである件も、前から何だかなーと思ってます。
出力がISO-2022-JPの場合は仕方ないんだけど。
2007/11/19(月) 17:11:54
>>199
とりあえずMIME decodeの方はconfig.hに
#define MIME_DECODE_DEFAULT FALSE
とでも書いてmakeすればデフォルト無効になります。

-Xの方はソース眺めていて-Iとの絡みが謎なので解読中。
似た方法でデフォルトを変えられるようにする方向です。

あー、バージョン情報かヘルプにデフォルトの設定出すようにした方がいいかな。
2007/11/19(月) 22:12:40
>>200
> あー、バージョン情報かヘルプにデフォルトの設定出すようにした方がいいかな。

あ、それあると嬉しい。
man あたりに "DEFAULT FLAGS" みたいなエントリ作れば良いのでは?

--help やって気付いたけど、標準エラー出力に投げるんだね。
これはソース見てすぐにどこいじれば標準出力に変更できるか分かったけど。
2007/11/20(火) 03:03:24
>>201
>> あー、バージョン情報かヘルプにデフォルトの設定出すようにした方がいいかな。
>あ、それあると嬉しい。
>man あたりに "DEFAULT FLAGS" みたいなエントリ作れば良いのでは?
コンパイルオプションは最終的にconfigureで設定できるようにする予定なのですが、
こっちはNKF.pmのコンパイルが微妙になることに気づいてどうしようかなとか。
ていうか、Encode.pmが標準添付なこの時代にNKF.pmとか使う人いるんだろうか。
# Encodeをたたくラッパーでいい気がするよね。

>--help やって気付いたけど、標準エラー出力に投げるんだね。
ですね、以前に微妙かと思って手元にあったコマンドがどこにヘルプ投げるか調べたら、
どっちもあったんですが、標準出力の方がいいですか?
2007/11/21(水) 00:17:27
>>202
>>--help やって気付いたけど、標準エラー出力に投げるんだね。
> ですね、以前に微妙かと思って手元にあったコマンドがどこにヘルプ投げるか調べたら、
> どっちもあったんですが、標準出力の方がいいですか?

量が多い時にページャに渡すときに一手間増えるかなと。
といっても 2>&1 を追加するだけなんで、あまり気にしなくておk。
2007/11/21(水) 17:17:45
デフォールト・オプション大変りなnkfは、nkf3として、
/usr/bin/nkf
/usr/bin/nkf3
が共存できるようにするとか。

Debian的には、
/usr/bin/nkf2
/usr/bin/nkf3
/usr/bin/nkf→/etc/alternatives/nkf→/usr/bin/nkf2
/usr/share/man/man1/nkf.1→/etc/alternatives/nkf.1→/usr/share/man/man1/nkf2.1
な感じ。update-alternatives --set nkf /usr/bin/nkf3で切り替え。
2007/11/22(木) 14:10:01
nkf3 って名前で install するのは .deb のパッケージシステムで
(すまん俺 .rpm なシステムしか知らん)やる事じゃまいか?

問題になるようなら他のシステム(portsとか)でも多分そうすると思う。

コンフィグorメイクのオプションで設定可能にするのは構わないと
思うがデフォルトを nkf3 にするのはどうかと。
2007/11/23(金) 01:00:12
debianだと、たとえ本家がnkf-2.1だろうと、
メインテナが互換性上別にした方がいいと考えたらnkf3_2.1になる。
だから気にしないでいい。
2007/12/07(金) 13:25:21
とりあえず config.h で -m と -x のデフォルトを変えられるようにしました。
#define MIME_DECODE_DEFAULT 0
#define X0201_DEFAULT 0
で -m0 -x を指定しているのと同じ状態になります。

また、nkf -V でコンパイルオプションを表示するようにしました。
Summary of my nkf 2.0.8 (2007-12-07) configuration:
Compile-time options:
Default output encoding: ISO-2022-JP
Decode MIME encoded string: OFF
Convert JIS X 0201 Katakana: OFF
例えばこんな感じ。

なお、この修正に伴い -x 関連のコードを整理した影響で、-I -x の動作に変更があります。
旧来 -I -x では半角カタカナの入力に対して、半角カタカナを出力していましたが、
これからはゲタを返すようになります。
208201
垢版 |
2007/12/16(日) 17:44:56
>>207
> また、nkf -V でコンパイルオプションを表示するようにしました。
GJ。
と言いたいところなんだが、手元でコンパイルして表示してみたら
Default output encoding: と下の二行の表示位置が空白一個分
ずれてるよ。

$ diff nkf.c.orig nkf.c
6183c6183
< fprintf(stderr, "(空白4個)Default output encoding:(空白6個)"
---
> fprintf(stderr, "(空白4個)Default output encoding:(空白5個)"
2007/12/19(水) 03:47:07
>>208
直しました、報告どうもです
2007/12/30(日) 01:49:03
nkfを次の様に使ってますが稀に文字化けします、文字化けしないような使い方がありますか?
mplayer ファイル名 | nkf -wu
文字化けの例
ファイル名は05.バレエ組曲「くるみ割り人形」アラビアの踊り.mp3


Failed to open LIRC support. You will not be able to use your remote control.
Playing 05.繝舌Ξ繧ィ邨峇縲後\繧九∩蜑イ繧贋ココ蠖「縲阪い繝ゥ繝薙い縺ョ雕翫j.mp3.
Audio file file format detected.
Clip info:
Title: チャイコフスキー バレエ組曲「
Artist: トスカニーニ指揮 NBC交響楽


ロケールはutf8でID3タグがsjisです
211201
垢版 |
2007/12/30(日) 02:00:38
>>210
元ファイル名の文字コードが SJIS 固定と決まっているのなら

nkf -Swu
2007/12/30(日) 02:20:45
ファイル名がutf8なんだろ。
2007/12/30(日) 17:15:04
nkf は行ごとに文字コードを判定することもあったようなその部分は壊したような、

とりあえず、ID3タグのみがShift_JIS (たぶんCP932)なのですから、そこだけ変換するべきでしょう。
mplayer | ruby -nrnkf -e'puts /^(Title|Artist)/=~$_ ? NKF.nkf("-w --ic=cp932",$_) : $_'
これだとバッファ周りがだめそうですが
214210
垢版 |
2007/12/31(月) 01:36:18
ありがとうございます

rubyさっぱりわからないですが試してみました
ファイル名は変換されますがID3タグが化けます、
それよりも秒数がまとめて出力されてしまう
Title: `CRtXL[ o
Gg
ネu
Artist: gXJj[jw
@mab
?
ソ
y
Album: o
Gg
ネuュ鰡

`v
ファイル名が"05.バレエ組曲「くるみ割り人形」 アラビアの踊り.mp3"なら
-wu で認識してくれるのだけど
2007/12/31(月) 17:59:12
あー、秒数とかがダメか。
てっとり早い解決策は、ID3タグをID3v2 (Unicode)に変換することじゃないかなぁ。
一括変換できるソフトはSTEPくらいしか知りませんが。
http://hp.vector.co.jp/authors/VA012911/

それ以外だとファイル名が化けるのはあきらめて nkf -uwS とかかな。

結局のところ出力がUTF-8の行とShift_JISの行が混在しているのが問題なので、
そろえてしまわないと解決は面倒になります。
216210
垢版 |
2008/01/06(日) 21:14:58
ID3タグをUnicodeにすることも考えましたが
そうすると他の機器で文字化けが、、、
mplayerでファイル名が化けることはそんなにないので
当面このままでいきます、ありがとう
2008/01/21(月) 17:12:26
先日デフォルトの出力エンコーディングを指定できるようにしたわけですが、
よくよく考えればロケール見て決めてくれよと思いつく。。。
2008/01/24(木) 02:29:18
>>217
端末の locale 見て自動変換してくれると便利だよね。

Ruby でその機能が欲しくて NKF 使ってライブラリ作ったけど
1.9 で動くか試してないや。
2008/01/24(木) 11:16:16
うーん。locale見るのはUIのレイヤでやってほしいかなぁ
内部のエンジンがそういう暗黙の挙動をするのは嬉しくないかも
2008/01/24(木) 15:08:10
>>218
Ruby 1.9 だと Encoding.locale_charmap がエンコーディング名とか、
Encoding.default_external がエンコーディングオブジェクトとかありますが、
Kconv に tolocale とこっそりつっこんだので、これ使うと楽です。

>>219
> うーん。locale見るのはUIのレイヤでやってほしいかなぁ
> 内部のエンジンがそういう暗黙の挙動をするのは嬉しくないかも
基本的には nkf コマンドの UI 部の機能という見解ですが、ライブラリとしての話でしょうか。
その場合は出力エンコーディングを指定してよという話になるわけですが。
ちなみに、今まではなにもいじらなければ JIS がデフォルトだったのでそれってどうよ、だったと。
2008/01/24(木) 19:36:37
nkf"コマンド"ではやって欲しいな
2008/01/24(木) 21:32:52
Ruby 拡張ライブラリだとどうしましょうかね。
* 今まで通りデフォルト JIS
* いやいや時代は UTF-8
* 自力でロケールはないとして、
* Encoding.locale_charmap
* Encoding.default_external
* 指定しないとエラー
2008/01/25(金) 02:42:31
>>220
Kconv#tolocale ね。 それは便利そうだ。

>>222
NKF#nkf の挙動の話だよね?
個人的には Kconv#tolocale があるんだし、
NKF は処理速度重視であって欲しいかな。

どれが一番速いのかは分からないけど。
2008/01/25(金) 11:22:34
nkfを使うということをプログラマが選択した時点で、
コード変換に注意を向けているわけですから、指定しないとエラー、
がいいんじゃないですかねぇ。

こっちじゃ動いたけどあっちじゃ動かない、系のトラブルも
回避できますし。
2008/03/01(土) 20:48:25
nkf --guessで、ファイル名も表示する方法ない?
複数ファイル入れた時は、表示されるんだが・・・
2008/03/01(土) 21:43:27
nkf 単体でやる方法はありませんね。
常にファイル名表示ーするとたぶん問題なんだろうなぁ。
2008/03/01(土) 23:04:38
/dev/nullを加えてnkf -gしてgrep -v /dev/nullする
2008/03/01(土) 23:11:45
先にecho -nしとこうぜ
2008/04/12(土) 02:41:18
フォルダー内のテキストやHtmlを一括で漢字エンコードするソフトを教えて下さいと2chで頼んだら
こちらのソフトを教えていただきました
下記アドレスを見たんですけど使い方がさっぱりわかりません
ttp://sourceforge.jp/projects/nkf/document/nkf-man-2_0_6-ja/ja/4/nkf-man-2_0_6-ja.txt

このツールで大量のテキストのエンコードを一括変換させるにはどのようにすればいいのでしょうか?
Windows xp
フォルダー内にはEUCのものとUTF-8のものとがあります
これらのファイルを一括でS-JISに変更させる方法を教えて下さい
オプションの説明ばかりでもしかして1ファイルづつの操作なのでしょうか?
一括変換の方法も書いてあるのかもしれないけど
疲れて最後までよめませんでした
どなたかわかるかたお願いします
2008/04/12(土) 03:27:29
悪いこといわんから、Windows用の専用ツール使いなよ。
窓の杜行けばあるでしょ。
2008/04/12(土) 03:37:34
>>230
えっそうなんですか
もうひとつ漢字とらんさーというツールも教えてもらったんだけど
フォルダーごとエンコードしてみたら2割くらいはバイナリかもしれないと
エンコード出来なかった表示がでてきた
それでファイルを1枚づつ確認してみたら
見事に1枚もエンコード変換できていませんでした
nkfに期待してるのですが
使い方わかんないよ
レスありがと
気が向いたら使用方法教えて下さいね
おやすみ
2008/04/12(土) 03:50:01
nkfの自動判別使った奴があるから探して使いなよ。

nkfでやりたかったら、↓のシェルスクリプト使いな。

#! /bin/sh
for i in "$@"; do
mv "$i" "$i.org"
nkf -s "$i.org" > "$i"
done

けどツール探した方が速いと思うよ、あなたの場合。
2008/04/12(土) 04:16:15
>>232さん
お疲れのところ本当にありがとうございます
>>232さんがおっしゃるとおり
簡単操作のツールでなければ使えないかもしれないです^^;
でもせっかく教えてくれたスクリプトなので頑張ってみます
ありがとうございました
おやすみなさい^^
2008/08/28(木) 02:12:18
最近 nkf のリリース無いね。
SourceForge 見る限りではメンテはされているみたいだけど。
そろそろ 2.0.9 とかが出てもいい頃だと思うんだけど。
2008/08/29(金) 06:02:01
どのような変更を期待なさっているので
2008/11/05(水) 21:10:48
>>234
Rubyの方で忙しいもので。
まぁ、さすがに放置が過ぎるので、Ruby1.9.1リリースあたりのタイミングで、
Ruby添付と同じものをリリース版として置こうかなと思ってます。
2009/01/22(木) 04:32:00
というわけで nkf 2.0.9 を出しました。
Perl モジュール部分が壊れていたので、Perl で使い方は Git から最新版を落としてくださいまし
2009/01/22(木) 09:17:01
いやがらせですねw
2009/02/02(月) 12:20:33
2.0.10マダー
2009/02/05(木) 00:19:53
入力がUTF-16の時にASCIIって判定されるね
-W16とか付けても効かないし
2009/02/21(土) 15:20:23
>>238
まぁ、Ruby寄り・・・というか、Rubyも組み込み変換があるのでコマンドがメインかな。
というか、PerlならEncodeがあるじゃないですか。

>>239
Ruby 1.9.1の最初のパッチリリースが出る頃には出そうかなと。
っと、バージョンナンバー二桁にして大丈夫なのかな?
だめそうなら2.1.0にしてしまうのでお早めに。

>>240
commit a6a715f3686cb70d38c6616c8e03830ef34d9478
にて修正しました
2009/03/18(水) 18:53:38
DLL だと、判定は UTF-16 になるのに lpBytesReturned に 0 が返ってきます。。。

HINSTANCE dll = ::LoadLibrary("nkf32.dll");
funcSetNkfOption *setopt = (funcSetNkfOption *) ::GetProcAddress(dll, "SetNkfOption");
funcNkfConvertSafe *conv = (funcNkfConvertSafe *) ::GetProcAddress(dll, "NkfConvertSafe");
funcNkfGetKanjiCode *getkc = (funcNkfGetKanjiCode *) ::GetProcAddress(dll, "NkfGetKanjiCode");
setopt("-xs");
conv(out, sizeof(out), &bytesReturned, in, sizeof(in));
int charcode = getkc();
::FreeLibrary(dll);
printf("%d %d %s\n", charcode, bytesReturned, out);

2.0.8 だと「4 6 UTF-16」みたいになるのに、2.0.9 だと「4 0」。
git は確認してないけど、>>241 で解決してるのかなぁ
2009/07/09(木) 15:58:30
マイナーな要望かもしれないけど UTF-7 や Modified UTF-7 の変換機能が欲しいなあ。
2009/08/21(金) 12:01:49
NKF 2.0.9 のマニュアルの --ic, --oc の CP932 の説明には、
「-x が暗黙のうちに指定される」と書かれていますが、
これが実際には効いていないように思います。

nkf コマンドの 2.0.8 が手元に無くなっちゃったので Ruby での比較になりますが、
2.0.8 → 2.0.9 で挙動が変わってしまっており、
2.0.8 ではマニュアルの通りに動作していたように見えます。


% ruby -rnkf -e 'puts NKF::VERSION; puts NKF.nkf("--ic=CP932 --oc=UTF-8", File.read("hello"))'
2.0.8 (2008-11-08)
コンニチハ

% ruby_trunk -rnkf -e 'puts NKF::VERSION; puts NKF.nkf("--ic=CP932 --oc=UTF-8", File.read("hello"))'
2.0.9 (2009-01-20)
コンニチハ
2009/09/02(水) 20:15:12
>>242
手元にDLL用の環境がないので確認できてないんですが、今でもそうなりますかね。
しばらく大きな更新の予定もないので、ここらで2.1.0でも出そうかと思いつ。

>>243
要望があれば検討しますよ、というわけでそのうちには。
Ruby/transcode じゃなくて nkf に欲しいんですよね?

>>244
これはバグですね、直します。
2009/09/03(木) 00:23:30
そうですね、 Ruby/transcode にも要る
(現状だと net/imap などは自前で実装してますね) と思いますが、
nkf にも欲しいところです。
2009/11/17(火) 12:24:05
# nkf -v
Network Kanji Filter Version 2.1.0 (2009-11-17)
2009/11/17(火) 12:35:27
おぉ!!
2009/11/27(金) 17:33:39
win板のバイナリ来ない (T-T
250名無しさん@お腹いっぱい。
垢版 |
2009/12/29(火) 17:24:35
64bit版てあるのかな?
2010/01/05(火) 13:38:40
環境変数LANGで設定した文字コードへ変換するオプションが欲しいです。
2010/02/12(金) 23:33:02
skfを使え
253efialtes
垢版 |
2010/02/14(日) 21:37:04
skf にそういう機能はないです。nkf の方は対応したことになっているらしいんですけど、もともとロカールからエンコーディングを抽出するのは POSIX 仕様上困難なので、なにか上手い方法が見つかったら考えます。
254名無しさん@お腹いっぱい。
垢版 |
2010/05/23(日) 12:34:07
nkfで2ch内のスレタイ検索してここに来ました。(ここだけでした)
ウインドウズ環境でnkf32.exeを使ってみた(nkf32.exe -w16L --overwrite)の
ですが、全角の―(ダッシュ)がハイフンだかマイナスだかに変わってしまいます!
これは滅茶苦茶困ります。もう泣きそうです。
誰に言えばいいのか分からないからここに書きます、何とかしてください!!
2010/05/23(日) 14:55:05
>>254
--cp932 オプションを付けてみると?
2010/05/23(日) 15:18:36
>>255
ぎゃー、上手くいきました!
嬉しいです、どうもありがとう。
ショックで良く調べもせず騒いですみませんでした。
本当にありがとう!
2010/06/02(水) 02:21:14
manが化けるのって嫌がらせ?
2010/06/02(水) 19:19:21
うん。
2010/06/03(木) 02:11:37
manコマンド
2010/06/03(木) 05:28:05
manドマンコ
2010/06/10(木) 11:55:58
> echo 60_byte_ijou_no_ascii_dake_no_mojiretsu_de_-M_shitemiru_test_ | nkf -M
=?EUC-JP?B?60_byte_ijou_no_ascii_dake_no_mojiretsu_de_-M_shitemiru_test_?=
2010/06/10(木) 19:01:08
>>261
バージョン上げるよろし
2010/06/28(月) 22:38:56
nkf.exeの64bitOSに対応したバージョンって、ないでしょうか?

XP-32bitからWin7-64bitに移行したところ、

[サポートされていない16ビットアプリケーション]

と出て、とまってしまいます。バッチで組み込んで使っているnkf.exeが唯一、
起動しないアプリになってしまいました。

コマンドラインから

c:\>コマンド名.exe 入力ファイル 出力ファイル

という手順(順番やオプションは不問)で呼び出しができて、
変換さえできれば、別のソフトでも全くかまいません。

なにか打開策ないでしょうか。
2010/06/29(火) 02:11:49
>>263
64bitバージョンのnkf使えてるよ
FreeBSD 8.0 amd64

OS入れ直すだけだね
2010/06/29(火) 02:34:01
>>264
マジすか!
挑戦してみます
2010/06/29(火) 11:09:36
>>257
歴史的経緯です。
nkfで変換して適当なところに突っ込んでください。

>>263
とりあえず 32bit 版の nkf.exe を使えば動くと思います。
http://www.geocities.jp/va007219/index.html#win95utilnkf
2010/06/29(火) 14:44:25
Windowsの文字コードだと、変換できないことが多々あるな・・・。
ファイル名とか。

仕方ないので、find -inum -exec mvで変更してるけど
なんか別の方法はないんだろうか。
2010/07/07(水) 22:11:55
mimeエンコードすると、行末の方だけ US-ASCII に成るのは、こういう仕様なんですかね。

$ echo 'aiueo kakikukeko さしすせそたちつてと naninuneno' | nkf -Mj
aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIg?=
 =?US-ASCII?Q?naninuneno?=
$ nkf --version
Network Kanji Filter Version 2.1.0 (2009-11-17)

ちなみにもう少し古い 2.0.9 とかも同様。
2010/07/10(土) 14:16:26
>>267
--ic=CP932 って話?
2010/07/10(土) 14:18:31
>>268
折り返し対策で仕様です
2010/07/10(土) 23:29:25
>>270
お返事ありがとうございます。
改行を入れると、改行を除去されたり、増えるのも同様にこういう仕様でしょうか。

$ echo -e 'aiueo kakikukeko\n さしすせそたちつてと\n naninuneno' | nkf -Mj
aiueo kakikukeko
 =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIK?= naninuneno
$ echo -e 'aiueo kakikukeko さしすせそたちつてと\n naninuneno' | nkf -Mj
aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEI=?=

  naninuneno
$
2010/07/13(火) 13:52:44
>>271
% echo -e 'aiueo kakikukeko\n さしすせそたちつてと\n naninuneno' | ./nkf -Mj
aiueo kakikukeko
=?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIK?= naninuneno
% echo -e 'aiueo kakikukeko さしすせそたちつてと\n naninuneno' | ./nkf -Mj
aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIK?= naninuneno
HEAD だと再現しないので、昔あったバグだと思います。
なお、改行が消えてるように見えますが、encoded-word の中にちゃんと入っています。
こうしないと「\n SP」は保存できないのです。
2010/07/14(水) 23:50:28
>>272
お返事ありがとうございます。
$ echo -e 'aiueo kakikukeko さしすせそたちつてと\n naninuneno' | nkf -Mj
の例がVersion 2.1.1 (2010-04-28) で以下となることを確認しました。
> aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEIK?= naninuneno
が、個人的には下を想像していたので、改行のエンコードが意外でした。
> aiueo kakikukeko =?ISO-2022-JP?B?GyRCJDUkNyQ5JDskPSQ/JEEkRCRGJEgbKEI=?=
>  naninuneno

nkf-2.1.0.tar.gzが最新と思っていましたが、リポジトリの方は2.1.1に改版されていたんですね。
2010/07/19(月) 15:38:09
下をデコードしてみるとダメな理由がわかるかと思います。
このあたり MIME encode って難しいんですよねぇ。

リポジトリ内のバージョンはリリース後の次のコミットで上がります。
ちなみに、2.1.1 は Ruby 1.9.2 がリリースされるころに出ます。
2010/07/19(月) 18:33:50
8月初旬か・・
2010/09/13(月) 21:14:57
nkf-2.1.1.tar.gz 日付: 2010-09-13, サイズ: 153.8 KB
2010/09/13(月) 23:24:00
あらま。
19:30にsourceforgeを覗いたときはまだ2.1.0が最新だったのに、生き馬の目を抜くような。
2010/09/22(水) 08:50:07
make testでtest_data/ruby-dev:39722がFailになるよ
2010/09/22(水) 10:29:42
それ、もう報告されて直ってるよ
280278
垢版 |
2010/09/22(水) 13:23:20
ありがとう。解決しました。
2010/12/21(火) 21:31:44
nkfは、linux用に nkf.dll を導入すべき。
2010/12/22(水) 08:01:59
他のプログラムから利用できるライブラリがあるといいね。
2010/12/22(水) 21:22:41
nkf はもう、Ruby のためだけにメンテされてるのではなかろうか。
2011/04/02(土) 20:06:05.51
DOSでUTF-8 -> SJIS変換に役立っています。(^^)/
2011/04/02(土) 22:17:57.57
そういえば、デフォルト出力コードがsjisになったことなかったけ。
2011/05/22(日) 09:15:15.72
いつになったら'%EF%BC%AE%EF%BC%AB%EF%BC%A6'を小細工なしでデコードできるようになるの?
2011/05/22(日) 09:45:16.35
echo '%EF%BC%AE%EF%BC%AB%EF%BC%A6' | nkf --url-input
じゃだめなん?
2011/07/10(日) 22:36:45.24
いつになったら'%EF%BC%AE%EF%BC%AB%EF%BC%A6'へ小細工なしでエンコードできるようになるの?
2011/07/11(月) 07:35:15.20
スクリプト言語使えよ
2011/07/11(月) 10:30:27.07
>>288
http://sourceforge.jp/forum/forum.php?forum_id=1007
に要望出してみ。
291名無しさん@お腹いっぱい。
垢版 |
2011/07/27(水) 20:05:47.10
全角ハイフン「―」(EUC-JPで a1 bd)のUTF-8って
nkf -Ew で変換すると e2 80 94
iconvで変換すると e2 80 95
どちらが正しいの?

UTF-8の e2 80 94をiconvでEUC-JPとに変換すると
iconv: illegal input sequence
ってエラーで中断。

nkf -We なら e2 80 94も e2 80 95も a1 bd に変換される。
2011/07/27(水) 20:52:24.85
291です。自己解決しました。スレ汚しスマソ
2011/07/27(水) 22:39:32.22
どう解決したのよ。
2011/07/28(木) 19:01:59.52
>>292
どう解決したのよ。
2011/07/28(木) 20:03:31.55
> nkf -Ew で変換すると e2 80 94

EM DASHか

> iconvで変換すると e2 80 95

HORIZONTAL BARかって違いだよね。
2011/09/08(木) 22:06:27.11
新版来たけど、まだ>>288には対応してくれないよー。
2011/09/08(木) 22:50:40.67
perl -ane 's/([^\000-\040a-zA-Z0-9$-_.+])/sprintf("%%%X", ord($1))/ge; print $_'
これで我慢しとけ
298アンネ
垢版 |
2011/12/10(土) 00:00:22.89
やぁ(笑)
2011/12/27(火) 00:45:53.12
test
2012/03/04(日) 17:13:02.30
300
301名無しさん@お腹いっぱい。
垢版 |
2012/03/16(金) 11:19:06.84
“--windows“ に “-x“ も加えてくだしa
つか、半角カナのある文字種に変換するときは、わざわざ全角に直さんでも(デフォルト)ええのでは
2012/03/18(日) 15:37:24.76
nkfぐらいの規模のソースすら改変できないユトリって多いね。
303名無しさん@お腹いっぱい。
垢版 |
2012/04/30(月) 15:03:54.47
$ echo '%a3%c5%a3%d5%a3%c3' | nkf --url-input -g
ASCII
となるのは重々理解できるが、
$ echo 'EUC' | nkf -g
EUC-JP
と同じ結果になってくれんですかー。
2012/04/30(月) 15:33:24.96
echo '%a3%c5%a3%d5%a3%c3' | nkf --url-input | nkf -g
305名無しさん@お腹いっぱい。
垢版 |
2012/04/30(月) 17:44:59.84
何を入力しても、一つ目のnkfのデフォルト出力コードが表示されるだけでは。
2012/07/25(水) 05:47:45.79
そろそろ UTF8-MACに対応してくれないかな..
2013/07/08(月) NY:AN:NY.AN
成瀬どこいった
2013/07/09(火) NY:AN:NY.AN
まだ何か実装しないといけないことってあるんかな。
正直nkfのコードってかなり読みにくいしメンテするのも辛そう
309名無しさん@お腹いっぱい。
垢版 |
2013/09/20(金) 05:15:16.91
nkfでコード変換のついでに全角スペースを半角スペース2個に変換したかったので
man見たら -Z2 っていうオプションがあったので使ったら、、
全角スペースだけじゃなく、全角英数記号まで半角に変換されるw
全角スペース→半角スペース2個の変換だけをやるオプションないの?
そのためだけにパイプでsedかますの無駄っぽいので。
2013/09/20(金) 07:07:15.34
sedでいいじゃん。
2013/09/21(土) 10:33:16.92
sedで全角処理させたらバグがあるからなぁ… (setlocale()不完全)
2013/09/22(日) 00:53:40.12
nkfがknifeに見えた
2013/09/30(月) 22:51:53.86
sed nkfがsenno knifeに見えた
2013/11/22(金) 16:01:16.74
2.1.3

unf系は来なかったか..
2013/11/22(金) 16:09:02.01
2年振りか
316名無しさん@お腹いっぱい。
垢版 |
2015/05/23(土) 11:04:46.41
ファイルの途中で文字コードが変わる時の対応がイマイチだな。
もっと改善求む。
317名無しさん@お腹いっぱい。
垢版 |
2015/05/24(日) 04:56:56.32
>>316
どんなファイルだよ

次は行の途中でとか言い出すんだろ?
2017/02/24(金) 19:53:31.70
そろそろ誰か nkflib を作成しろよ。
2017/03/23(木) 23:54:06.68
githubに誰か作ってたよ。
320名無しさん@お腹いっぱい。
垢版 |
2017/11/06(月) 12:05:13.03
今頃気がついたけど、nkf.docに Z4のオプション記載が抜けてる・・
2017/11/13(月) 15:06:22.89
Remove wrong mapping from JIS X 0213 [nkf-bug #37604] [nkf-bug #37618]
2017/11/20(月) 22:42:12.21
https://www.nuget.org/packages/Nkf.Net
2017/11/28(火) 05:53:03.80
>>319
いつのまにか消えてた。
324名無しさん@お腹いっぱい。
垢版 |
2017/12/29(金) 06:56:18.49
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

WFLNURSCIY
2018/01/04(木) 16:08:53.44
inkf
https://osdn.net/projects/inkf/
326名無しさん@お腹いっぱい。
垢版 |
2018/05/22(火) 03:14:39.79
知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

N0UG8
327名無しさん@お腹いっぱい。
垢版 |
2022/01/23(日) 01:36:21.02
停滞してるね
2022/02/21(月) 12:46:03.87
もうutf-8普及しすぎて大量バッチ処理する需要が減ったのでは
たまになんか化けてるの見たら反射的にnkf -gするけど、たまに程度なら遅いvimとかでも変換は済むし
329名無しさん@お腹いっぱい。
垢版 |
2023/01/05(木) 21:46:40.01
github.com/nurse/nkf って何なの。
ja.osdn.net/projects/nkf/ の派生か何か?
330名無しさん@お腹いっぱい。
垢版 |
2023/02/01(水) 20:40:19.23
んこフー
331名無しさん@お腹いっぱい。
垢版 |
2024/03/09(土) 09:15:52.81
誰か、そろそろ python modulie のインストーラ直してくれ
332名無しさん@お腹いっぱい。
垢版 |
2024/03/11(月) 14:05:42.84
うんこふー
333名無しさん@お腹いっぱい。
垢版 |
2024/03/27(水) 21:14:35.27
どう考えてからたまに言うつもりはないの?
引っ張るだけで
334名無しさん@お腹いっぱい。
垢版 |
2024/03/27(水) 21:20:39.44
それでいてあっちのほうはCMみたいになるだけだろ
何なんだよこれ
335名無しさん@お腹いっぱい。
垢版 |
2024/03/27(水) 21:32:38.99
>>319
殺し合い?
これがわからんやつが出てきて
336名無しさん@お腹いっぱい。
垢版 |
2024/03/27(水) 21:52:34.01
同伴競技者とそれ以外に調べることなんだよ
何でもなく
ほとんど新車みたいな
2024/06/25(火) 16:30:37.65
nkf難しすぎ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況