nkfってなんだ

1名無しさん@お腹いっぱい。
垢版 |
NGNG
初心者です。ご指導おねがいします。
NGNG
nkf で base64 ほどけりゃいいのに。

と話を nkf に戻してみる。
NGNG
>>85
> nkf で base64 ほどけりゃいいのに。
-mBじゃダメなん?
ほどくってのがどういう意味かわからんけど。
NGNG
>>86
すんません、「デコード」するっていう意味で言いました。
それだと、バイナリデータでも無理矢理勝手に文字コード変換して壊れちゃわない?
NGNG
>>87
ああ、そういうこと?
でもそれを`Network Kanji code conversion Filter'に求めるのはちと酷では
ないかと。
別にBase64云々は関係ないわけだし。
NGNG
>>88
まぁ確かにそうだよね。スマソ。
NGNG
eXg
NGNG
B%F%9%H (J)
NGNG

93名無しさん@お腹いっぱい。
垢版 |
NGNG
ファスナーにykkって書いてあるよ。
NGNG
knkってなんだ
NGNG
>>94 振り向かないことさ
NGNG
nxtってなんだ
NGNG
>>95
蒸着!赤射!焼結!
すまぁ〜
NGNG
>>96 ためらわないこーとーさー
NGNG
ギャバソ!
NGNG
あばよnxt
NGNG
ギャバソ!
NGNG
よろしくzsh
NGNG
よろしく ゆ○き@甲府
NGNG
よろしくメカドック
NGNG
宇宙キチガイィ〜〜〜void〜〜〜〜〜〜〜〜〜〜〜〜〜〜
106山崎渉
垢版 |
NGNG
(^^)
NGNG
いまさらだけど、kccを忘れないで欲しいYO!
ftp://ftp.sra.co.jp/pub/os/linux/JE/sources/base/kcc.tar.gz
kcc -cでSTDINからブチ込まれた文字コードの判定
nkfと同じようにフィルタとして動作する
Debianパッケージもある(公式のものに含まれている)
108名無しさん@お腹いっぱい。
垢版 |
NGNG
ミルクとクルミ
NGNG
kcc も ack も一応入ってるけど、どーいう時に使うのさ?
NGNG
自分で nkf もどき書いてみたんだけど、nkf のほうが全然速いよ。
文字コード判別してないのに。
111110
垢版 |
NGNG
書き直したら余裕で勝てた。文字コード判別はないけど。
最速はどれなのかな。
NGNG
いまどき多少の性能の差はどうでもいいと思われ。
固有の機能を必要とするんでなければ、スタンダードとしての知名度・普及度と安心感が第一。

たとえば、配布したり他人に使わせることが前提のシェルスクリプトの中で
コード変換したくなったとき、何を使うかというと、
やはりたいていのマシンにあって枯れているnkfということになるだろう。
nkfでもいいような用途なのに「qkc使ってるんでqkc入れてください」とかいわれるとちょっと引く。

まあ最近はworldwideではiconvのほうがメジャーかもしれんが、
Unicodeを経由する時点で不安はぬぐえない。
昔ならcocoも有力だったが、さすがにもうmuleもろともあぼーん気味だしな。
NGNG
なんか懐かしいな coco
NGNG
>>112
iconv って必ず Unicode 経由すんの?
NGNG
Chalice のページで、
「変換精度の観点から qkc をオススメします」とあるのだけど、
nkf の変換精度ってそんなに qkc より悪いの?
116名無しさん@お腹いっぱい。
垢版 |
NGNG
変換精度? さぁ、どうなんでしょうね。

速いってのは嘘だと思うけど。速さよりは拡張しやすいようになっている
はずだよ。iconvみたいなのとは、また、違うしな。
117あぼーん
垢版 |
NGNG
あぼーん
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:]]' で済みそうだけど。
レスを投稿する

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

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