nkfってなんだ
0001名無しさん@お腹いっぱい。NGNG
初心者です。ご指導おねがいします。
0003いひひNGNG
Network Kanji code conversion Filter。

つーか、こういうのはくだ質逝きなさい。
削除依頼しておきな。
00071NGNG
解りました

[hoge@nkf]$ cat nkf.txt | nkf -e
納豆は食う感じこうで今晩しよう古田

ってことですね。やっと中身が読めました
001411NGNG
nkf -e nkf.txt | cat | more | less | dd | perl -npe '' | awk '{print}' | sed ''| gzip -c - | gzcat

とか。
まだ、続けられそうだね。
0034名無しさん@お腹いっぱい。NGNG
>>11で思いだしたけど、SJISの行とEUCの行が混ざってるファイルを
変換する、これより{簡単な|よい}方法あったら教えて。

cat mixed.txt | while read l; do echo $i | nkf -e; done
0035名無しさん@お腹いっぱい。NGNG
>>34
そんな面白い方法があったんだ.
僕なんか emacs で違うコーディングとして開いて,
それを手動で merge する方法しか思いつかなかった.
0038名無しさん@お腹いっぱい。NGNG
>37
半角カナとかでは問題出そう。
あと、>34だと\がエスケープされる(\だけ)のと、最後の行が完結
していないと尻尾切れになるから、
{ sed -s 's/\\/\\\\/g' mixed.txt; echo; } | while read l; do echo "$i" | nkf -e; done
かな。
0039名無しさん@お腹いっぱい。NGNG
>>38
sed 使うんなら awk も使わせろ。
awk '{print|"nkf -e"}' mixed.txt
以下、perl も…(略) 藁
0043名無しさん@お腹いっぱい。NGNG
NKo Funjatta
0044名無しさん@お腹いっぱい。NGNG
法法法法法法法法法法法法法法法法法法法料領法法法法法法法法法法法法法法法法法法
法法法法法法法法法法法法法法瞭麟麟麟麟麟麟麟麟麟麟法法法法法法法法法法法法法法
法法法法法法法法法法法法麟麟麟麟麟麟麟麟麟麟麟麟麟麟麟法法法法法法法法法法法法
法法法法法法法法法法法麟麟麟麟麟鱗鱗鱗鱗鱗鱗鱗鱗麟麟麟麟麟法法法法法法法法法法
法法法法法法法法法法領麟麟麟鱗瞭緑緑緑緑緑緑緑諒緑領緑麟麟麟法法法法法法法法法
法法法法法法法法麟麟麟麟鱗瞭瞭瞭緑緑諒諒諒諒諒諒諒諒諒諒麟麟麟瞭法法法法法法法
法法法法法法法鱗麟麟麟麟鱗瞭瞭緑緑遼諒諒諒諒諒諒諒諒諒諒諒麟麟麟法法法法法法法
法法法法法法隣麟麟麟麟麟鱗瞭瞭緑緑遼諒諒梁梁防法法法諒諒諒瞭麟麟鱗法法法法法法
法法法法法法麟麟麟麟麟麟鱗瞭瞭緑緑諒諒諒梁梁梁防防法諒諒諒諒麟麟麟法法法法法法
法法法法法法麟麟麟麟麟麟鱗瞭瞭緑緑諒諒梁梁諒諒諒法防諒諒諒諒麟麟麟防法法法法法
法法法法法法麟麟麟麟麟麟鱗麟麟麟麟鱗瞭諒法法梁諒諒隣麟麟諒諒麟麟麟鱗法法法法法
法法法法法法麟麟麟麟麟麟麟麟麟瞭緑緑緑緑諒諒領遼領諒諒遼緑諒瞭麟麟法法法法法法
法法法法法法法麟麟麟麟鱗麟鱗瞭諒諒梁緑緑領諒諒諒領諒法防諒諒諒麟麟法法法法法法
法法法法法法緑麟麟麟麟鱗鱗麟麟麟麟鱗領瞭諒法法緑鱗麟麟麟諒諒諒麟瞭法法法法法法
法法法法法法瞭量麟麟麟瞭緑瞭瞭緑領遼諒緑遼防梁諒緑諒法防瞭諒梁麟緑法法法法法法
法法法法法法瞭瞭鱗遼鱗瞭緑諒諒諒諒遼緑緑緑諒諒防防梁諒諒法防梁防法法法法法法法
法法法法法法遼瞭瞭緑鱗瞭緑諒諒諒梁諒瞭瞭緑諒梁梁諒防梁梁法防防防法法法法法法法
法法法法法法法量瞭瞭鱗鱗緑諒諒諒諒量瞭瞭緑梁防防諒緑防法法防防法法法法法法法法
法法法法法法法瞭隣隣鱗鱗緑緑遼緑緑瞭麟麟麟緑緑緑法諒緑諒防防防諒法法法法法法法
法法法法法法法法法隣鱗鱗瞭緑瞭瞭瞭瞭瞭瞭諒諒諒防防防瞭緑諒梁防諒法法法法法法法
法法法法法法法法法瞭鱗鱗瞭緑緑麟鱗量量瞭瞭緑緑諒諒諒諒瞭諒諒防法法法法法法法法
法法法法法法法法法法麟瞭瞭諒緑瞭麟緑諒防法法法法麟緑諒緑諒諒法法法法法法法法法
法法法法法法法法法法麟鱗麟諒瞭瞭瞭緑瞭緑諒遼緑緑諒諒諒諒諒諒法法法法法法法法法
法法法法法法法法法法麟麟瞭瞭瞭瞭瞭量緑領領諒諒諒諒諒諒諒諒法法法法法法法法法法
法法法法法法法法法法麟麟鱗麟瞭瞭瞭鱗鱗瞭瞭緑遼諒諒諒諒諒諒法法法法法法法法法法
法法法法法法法法料鱗麟麟麟麟麟瞭緑緑諒諒諒梁防梁防諒諒法法法法法法法法法法法法
法法法法法法法鱗麟隣防隣麟麟麟麟鱗遼諒諒諒梁防梁諒諒法法法法法法法法法法法法法
法法法法法法麟麟麟鱗防防防麟麟麟麟鱗瞭領瞭諒諒領緑諒法法法法法法法法法法法法法
法法法法隣麟麟麟麟麟防法法法隣麟麟麟鱗鱗鱗鱗隣領諒諒法法法法法法法法法法法法法
法料麟麟麟麟麟麟麟麟防法法法法法麟鱗鱗鱗鱗瞭諒諒諒法法麟法法法法法法法法法法法
(省略されました・・全てを読むにはここを押してください)
0045名無しさん@お腹いっぱい。NGNG
nkf は UTF-8 対応しないの?
0050名無しさん@お腹いっぱい。NGNG
>>49
あいかわらず河野がかかわってるんじゃん。
またパッチひとつ当てるのに2年かかり、1行修正するのに
半年かかりの連続だぜよ。

とっととスタンダードを別なのに変えるべき。
0051名無しさん@お腹いっぱい。NGNG
sjis.txt|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s
|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s|nkf -e|nkf -s > /dev/null
0053名無しさん@お腹いっぱい。NGNG
うけた。
0056名無しさん@お腹いっぱい。NGNG
>>54
i昆布って、nkfと比べられるようなもんか?
0057名無しさん@お腹いっぱい。NGNG
2.0 系って Namazu Developers ML での成果?
0061名無しさん@お腹いっぱい。NGNG
iconvダメすぎ。SJIS(MS-CP932?)の◯の中に数字が入っている文字を
認識できないで、意味不明なエラーを吐いて死ぬ←これが問題。
それを採用している gtk+-2.0 はもっとダメすぎ。
0063名無しさん@お腹いっぱい。NGNG
>>61
それはiconvが厳密に「正当な」文字しか認識しないから。
euc-jp-relaxedみたいなのがサポートされていれば、nkfみたいな
適当変換で乗り切れるのだが、あいにく大抵のiconvは何でも一回
Unicodeにするから、なかなかその手の変換は実装できない。
GNU iconv 1.8だと//TRANSLITなんてのが実装されているけど、
根本的な解決には程遠いような。
まあ貧乏人はeuc-jisx0213を食え、ということなんだろうなあ。
0066名無しさん@お腹いっぱい。NGNG
wkc
0067名無しさん@お腹いっぱい。NGNG
オプションにファイル名をつけた時のデフォルトの挙動や、
シンボリックリンクへの対応ができてなくてUNIXらしくない
(もともとDOS 出身だからしょうがないんだけど)
ので嫌う人はいるけど、変換効率は悪くないし、まとめて変換、って時に
for ループ使ったり一時ファイルを自分で用意する必要がないので俺は使ってる。
0070名無しさん@お腹いっぱい。NGNG
俺こんな使い分けしてる。

nkf: フィルタとして使いたいとき、MIME ヘッダエンコードの変換したいとき
qkc: ファイルを変換したいとき、改行コード変換したいとき
wkf: 文字コード判定だけしたいとき
lv: UTF-8 の変換や閲覧したいとき
ack: 何それ?
iconv: 逝ってよし
0073Not 71NGNG
とりあえずFreeBSD用。まずは前半。

begin 644 ja-wkf.shar.gz
M'XL("!*SF3T"`VIA+7=K9BYS:&%R`*U6;6_B2`S^3'Z%5=!U*SH)"?2%W-*#
M`N78Y:4"ND7WX5`(`Z2$!"6A;*_J?S][DM*TA2PG'8H`V\]X[&=L9](PF%L^
MX&.`/^>V#89GSJU'+@/TC4<.5@"6@\:I9?-3\/C21:7A/`5SRYG!F$]=CTMI
M",B+;3F(,9P)BMR!M;,RS`5Y?\!=P+NT9(C?RZ<'>$.'3?`!0A8&D_HQ/2X
M$7"86!XW`]>SN/^[@/K"9TP-&PLC'7-P-PZ?D/LG=TT@=#*GJ"=\:JSM`%;<
M6UJ^;[F.+TMIM(ILHQ3!=)W`L!Q?)U/JP5@9#O=Y[*_2-A:<(I`MQXSK-XOI
M!W$+_:B?6'Y@.5/WHUXDME.IK(S`G+/8WDDP3&)JS=;>IXU7BQD:ETMD?I=I
MPGW3VV58V1@Q,L+-N0LF,-@2LUS@&0!;;35P!<J$/RK.&H]#N_I-#1?]C"UZ
M3Z&/IW7L*W\/%>48KG9BX.M7.*YW:LR=LIV`8VF8ALR-Q_EUOZ;#RO4"7]F)
M/'T$52Z`ELOEE-REHEV`>JZ?:7JA``MG#?6?*\B@,VDH#6^_-SJ5=OVV5[]I
M#O\H(2M,2@KB,SNB)CXQ1-I#6'I707M8BF-VLA0'($NWW=Z`DBJE*#0A_JCW
M^LUNIY12Y;RL2L-J95!O='O->K_T5O_#=J4_J/=&_>:`]/,@6.F*LMELY/83
MUK)Y7VFU9*PLQ7>GP<;PN.)[ID(LWO7KH^N_FK=:*?6$Q3UL=.Y&U6[GIMFX
MZ]4CW58>57H-=,\8=XRQS5G4LXRO3?:PDH;-3G^`._5'_3];S>MH-07744LI
M2HD20*E5Z30H>C+2T=CK"=(S]B<RE8:\7%Q)243M.8QMVR8<QBMF[V&\`O`P
MVK4S^((Z)IB7`\.3Q_]H)U""J<GS175L:N>&5N079X8VUJ83,W]9G.3&A:(I
M)7G>78?1<-E9C:'MT)K<-Y`26-FS9"])>_#(&6,,8AH99_\L=8\[?UL[V-60
0074Not 71NGNG
>>73の続き。

MR^GJA9Z_I`['6LAFLW%X:K#FT#4#`!6TO)[/Z?DB(35I6"X#*YY>0):^RF5I
M"&/+0:Y2@)\2E$.)]+8UCNE#B?11G1&_9'@3T<B61MQ9*)65S#-5Z@O&N=M.
M%0SX5*NI%*JK5=JG5K_I"Y'^E,/(SPL4NO@6L>-SV^LV2J++X9::!0.E!D&/
MK!^3?1=++X\1?%2&7L1#.ZB:2EO0S^5V#WPR7VCAB4Y_NM??3M!]*O.E53L!
M=NW/<1)0(P-S7X%ON"SBJE7$"=@$V+U]RGS7,9;\]!6\;UVK,^J?;$W;J+=1
MI?_?3T1!(2\H*,1IQKM"8-@V6WGN3-<Q-.(=HX04RSRW?[P`FT+F.:R>%SQP
M,K]\ULBN/1'4/4<S#A?Z\`DNLG^%C,C8J[1?=N'BL2$_86BO1(I?HFP>!=H3
M3L):%C$AXD7Z#ZUYP*QXNY4<."FV"PZ:$UMT-"6V<C@CJ/,KZQG-"+6HY\_T
MG!IU/LV(+?C#A-`N$1J;$&I!*V#]9Z-?400`W*97)/4N5&]:%7R%';$9L%JM
M?GW7.!*6J851A3@60W4U-&?3H2&;_F@1RT1)'YS]GH.(W_P2Z(_!]I(>PR#5
M].8_]N&[X3Q8<&/9>*67?K$J(<3P!OJ+``4H,3R!V!,<7@GN[^]U..`.0^ZD
MQ#T24@GOS+](18`24Q$(3"5ZG2A1UV*?B]OE$'M6>1OM,8FFX3L11WKB)A+_
-:062]"^@I@MO_PT`````
`
end
007775NGNG

                        キボンヌ〜キボンヌ〜
        ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <   病ウプキボンヌ
             \_/⊂ ⊂_ )   \__________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
0078Not 71NGNG
>>75
ありゃ、確かに一行壊れてる行があるな。そいじゃBASE64でもう一度。
まずは前半。

begin-base64 644 ja-wkf.shar.gz
H4sICBKzmT0CA2phLXdrZi5zaGFyAK1WbW/iSAz+TH6FVdB1KzoJCfSF3NKDAuXY
5aUCukX34VAIA6SEBCWhbK/qfz97ktK0hSwnHYoA28947GdsZ9IwmFs+4GOAP+e2
DYZnzq1HLgP0jUcOVgCWg8apZfNT8PjSRaXhPAVzy5nBmE9dj0tpCMiLbTmIMZwJ
ityBtbMyzAV5GD8BdwLu0ZIjfy6cHeEOHTfABQhYGk/oxPS4EXCYWB43A9ezuP+7
gPrCZ0wNGwsjHXNwNw6fkPsnd00gdDKnqCd8aqztAFbcW1q+b7mOL0tptIpsoxTB
dJ3AsBxfJ1PqwVgZDvd57K/SNhacIpAtx4zrN4vpB3EL/aifWH5gOVP3o14ktlOp
rIzAnLPY3kkwTGJqzdbep41Xixkal0tkfpdpwn3T22VY2RgxMsLNuQsmMNgSs1zg
GQBbbTVwBcqEPyrOGo9Du/pNDRf9jC16T6GPp3XsK38PFeUYrnZi4OtXOK53asyd
sp2AY2mYhsyNx/l1v6bDyvUCX9mJPH0EVS6AlsvllNylol2Aeq6faXqhAAtnDfWf
K8igM2koDW+/NzqVdv22V79pDv8oIStMSgriMzuiJj4xRNpDWHpXQXtYimN2shQH
IEu33d6AkiqlKDQh/qj3+s1up5RS5bysSsNqZVBvdHvNer/0Vv/DdqU/qPdG/eaA
9PMgWOmKstls5PYT1rJ5X2m1ZKwsxXenwcbwuOJ7pkIs3vXro+u/mrdaKfWExT1s
dO5G1W7nptm469Uj3VYeVXoNdM8Yd4yxzVnUs4yvTfawkobNTn+AO/VH/T9bzeto
NQXXUUspSokSQKlV6TQoejLS0djrCdIz9icylYa8XFxJSUTtOYxt2yYcxitm72G8
AvAw2rUz+II6JpiXA8OTx/9oJ1CCqcnzRXVsaueGVuQXZ4Y21qYTM39ZnOTGhaIp
JXneXYfRcNlZjaHt0JrcN5ASWNmzZC9Je/DIGWMMYhoZZ/8sdY87f1s72NWQy+nq
hZ6/pA7HWshms3F4arDm0DUDABW0vJ7P6fkiITVpWC4DK55eQJa+ymVpCGPLQa5S
0079Not 71NGNG
>>78の続き。

gJ8SlEOJ9LY1julDifRRnRG/ZHgT0ciWRtxZKJWVzDNV6gvGudtOFQz4VKupFKqr
VdqnVr/pC5H+lMPIzwsUuvgWseNz2+s2SqLL4ZaaBQOlBkGPrB+TfRdLL48RfFSG
XsRDO6iaSlvQz+V2D3wyX2jhiU5/utffTtB9KvOlVTsBdu3PcRJQIwNzX4FvuCzi
qlXECdgE2L19ynzXMZb89BW8b12rM+qfbE3bqLdRpf/fT0RBIS8oKMRpxrtCYNg2
W3nuTNcxNOIdo4QUyzy3f7wAm0LmOayeFzxwMr981siuPRHUPUczDhf68Akusn+F
jMjYq7RfduHisSE/YWivRIpfomweBdoTTsJaFjEh4kX6D615wKx4u5UcOCm2Cw6a
E1t0NCW2cjgjqPMr6xnNCLWo58/0nBp1Ps2ILfjDhNAuERqbEGpBK2D9Z6NfUQQA
3KZXJPUuVG9aFXyFHbEZsFqtfn3XOBKWqYVRhTgWQ3U1NGfToSGb/mgRy0RJH5z9
noOI3/wS6I/B9pIewyDV9OY/9uG74TxYcGPZeKWXfrEqIcTwBvqLAAUoMTyB2BMc
Xgnu7+91OOAOQ+6kxD0SUgnvzL9IRYASUxEITCV6nShR12Kfi9vlEHtWeRvtMYmm
4TsRR3riJhL/aQWS9C+gpgtv/w0AAA==
====
008280NGNG
>>78.79
uudeviewで戻せました。thx
0087名無しさん@お腹いっぱい。NGNG
>>86
すんません、「デコード」するっていう意味で言いました。
それだと、バイナリデータでも無理矢理勝手に文字コード変換して壊れちゃわない?
0088名無しさん@お腹いっぱい。NGNG
>>87
ああ、そういうこと?
でもそれを`Network Kanji code conversion Filter'に求めるのはちと酷では
ないかと。
別にBase64云々は関係ないわけだし。
0093名無しさん@お腹いっぱい。NGNG
ファスナーにykkって書いてあるよ。
0107名無しさん@EmacsNGNG
いまさらだけど、kccを忘れないで欲しいYO!
ftp://ftp.sra.co.jp/pub/os/linux/JE/sources/base/kcc.tar.gz
kcc -cでSTDINからブチ込まれた文字コードの判定
nkfと同じようにフィルタとして動作する
Debianパッケージもある(公式のものに含まれている)
0108名無しさん@お腹いっぱい。NGNG
ミルクとクルミ
0111110NGNG
書き直したら余裕で勝てた。文字コード判別はないけど。
最速はどれなのかな。
0112名無しさん@お腹いっぱい。NGNG
いまどき多少の性能の差はどうでもいいと思われ。
固有の機能を必要とするんでなければ、スタンダードとしての知名度・普及度と安心感が第一。

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

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

速いってのは嘘だと思うけど。速さよりは拡張しやすいようになっている
はずだよ。iconvみたいなのとは、また、違うしな。
0118ななしNGNG
iconv の "i" って "imouto" の事?
0122名無しさん@お腹いっぱい。NGNG
判別だけの動作も出来て、utf8も扱えるフィルタきぼんぬ

qkcをutf8対応にするか、nkfに判別機能を付けるかかなあ。
0124名無しさん@お腹いっぱい。NGNG
nkfのソース覗いてみたら、--debugオプションハッケソ
これで判別の用は足りそう。

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

まあこれに免じてageちったのは許してちょ
0132名無しさん@お腹いっぱい。NGNG
底上げ
0135名無しさん@お腹いっぱい。NGNG
うまちょびれ〜っ!
0136名無しさん@お腹いっぱい。NGNG
ioscan -nkf

これじゃないの?
0138愛・昆布 ◆qvkminQt6g 2005/03/28(月) 23:20:29
ぼくわこんぶがだいすきですぼくがこんぶがすきなところわおいしいからこんぶはすきですおでんのこんぶはぜんぶたべてしまっておとおさんにおこらいましたもうしないようにしないとおとおさんがこわいのでしません。
0140名無しさん@お腹いっぱい。2005/04/16(土) 07:42:34
iconvやuconvがあるからもうnkfとかqkcとか日本ローカルなものはいらないね
0148名無しさん@お腹いっぱい。2005/04/16(土) 17:26:19
自動認識の要求もそれなりにあるからなあ。
まあでもiconvに成功するまでいろんなencodingで試すというやりかたも
なくもないか。gonzuiはそうやっているらしい。
0154名無しさん@お腹いっぱい。2005/06/12(日) 08:27:41
age
01551532005/06/13(月) 09:09:31
ヤバイ上書きは--overwriteらしい。今は反省している。
0156名無しさん@お腹いっぱい。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)
0158名無しさん@お腹いっぱい。2005/12/31(土) 18:02:43
でも河野さんはsonyでしょ。(当時)
0159名無しさん@お腹いっぱい。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
0161名無しさん@お腹いっぱい。2006/01/16(月) 20:40:22
>>160
ああ!思い出した。 ruby-dev に出てたのと同じ問題ですね。
桜が咲くのを待ちつつ、修正版を使いますです。どうもです。
0162成瀬 ◆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/
0164名無しさん@お腹いっぱい。2006/03/11(土) 16:48:26
過疎スレに書き込むなボケ
0166成瀬 ◆NBGqNARUSE 2006/03/11(土) 19:04:33
デフォルトでmtimeを更新するようにしたら、
cp -p を真似して、mtimeを更新しない -p オプションを追加する気ではいます。

>>164
わざわざageてくださってどうも、しかもツンデレで。
0167名無しさん@お腹いっぱい。2006/03/12(日) 20:21:51
>>166
--overwrite が長いオプションなので、 (tar 風に) --preserve とかがいいかなあ。
一文字オプション文字空間はそれほど広くないでしょう。
0168成瀬 ◆NBGqNARUSE 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]とかすると、既存のオプションにぶつかるのが悩み。
01711672006/03/13(月) 00:35:36
意図してやってるなら仕方ないですね。
とりあえずそのままで、タイムスタンプ変えたい人が多く出てきたらオプション新設、
とかでもいいように思います。

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

今更なので、変えてくれという話ではなくて、素朴な疑問なのですが、
「--overwrite」って一般的なもんなんすかね?
GNU sed だと --in-place だったり Perl や Ruby だと -i ですよね。
0175成瀬 ◆NBGqNARUSE 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以上に有名なものってありませんよね?
なるべく長いものに巻かれておきたいのですけれど。
0176成瀬 ◆NBGqNARUSE 2006/03/21(火) 22:55:47
2.0.6 beta1 を出しました。
http://sourceforge.jp/projects/nkf/

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

ちなみに、同様に意図しない変換を引き起こしうる、デフォルトが -X な件は、
--ic / --oc ではデフォルトで -x を含むようにしています。
0177名無しさん@お腹いっぱい。2006/06/03(土) 16:36:10
SJISで全角'−'記号の0x817CをUTF-8Nの0xEFBC8Dに変換する
オプションを教えて欲しい。
普通にC:\>nkf -S -w test.sjs > test.utf8nとかしても
0xE28892に変換され、他のソフトに読み込むときうまく
読み込まれず苦労しています。
TeraPadで読み込んでUTF-8Nで変換すると0xEFBC8Dに変換されます。
あと、全角の'¥'記号が半角の'\'記号になってしまうのも。
01801772006/06/04(日) 17:35:32
nkfのVersionはたしか2.07betaだと思う。
Vectorでダウンロードしたやつで、
色んなVersionが同梱されていました。
因みにiconvってWindowsで使えるの?
0181名無しさん@お腹いっぱい。2006/06/04(日) 20:39:13
それだとあなたの言う動作になっているね。
2.0の頃は¥のままだったんだけど。

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

nkfだとコードがでかすぎて弄れぬ。
0185成瀬 ◆NBGqNARUSE 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:]]' で済みそうだけど。
01871862006/12/08(金) 03:00:07
俺はバカだ。ここはUNIX板じゃないか(泣
(ちなみに俺の今の -> "nkf2PDI3")
0189名無しさん@お腹いっぱい。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=?=
01911892007/01/19(金) 13:37:09
>>190
>>190 さんは MIME のオプション指定で再現しなくなりましたか?

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

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

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

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

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

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

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

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

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

量が多い時にページャに渡すときに一手間増えるかなと。
といっても 2>&1 を追加するだけなんで、あまり気にしなくておk。
0204名無しさん@お腹いっぱい。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で切り替え。
0205名無しさん@お腹いっぱい。2007/11/22(木) 14:10:01
nkf3 って名前で install するのは .deb のパッケージシステムで
(すまん俺 .rpm なシステムしか知らん)やる事じゃまいか?

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

コンフィグorメイクのオプションで設定可能にするのは構わないと
思うがデフォルトを nkf3 にするのはどうかと。
0206名無しさん@お腹いっぱい。2007/11/23(金) 01:00:12
debianだと、たとえ本家がnkf-2.1だろうと、
メインテナが互換性上別にした方がいいと考えたらnkf3_2.1になる。
だから気にしないでいい。
0207成瀬 ◆NBGqNARUSE 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 では半角カタカナの入力に対して、半角カタカナを出力していましたが、
これからはゲタを返すようになります。
02082012007/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個)"
0210名無しさん@お腹いっぱい。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です
02112012007/12/30(日) 02:00:38
>>210
元ファイル名の文字コードが SJIS 固定と決まっているのなら

nkf -Swu
0213成瀬 ◆NBGqNARUSE 2007/12/30(日) 17:15:04
nkf は行ごとに文字コードを判定することもあったようなその部分は壊したような、

とりあえず、ID3タグのみがShift_JIS (たぶんCP932)なのですから、そこだけ変換するべきでしょう。
mplayer | ruby -nrnkf -e'puts /^(Title|Artist)/=~$_ ? NKF.nkf("-w --ic=cp932",$_) : $_'
これだとバッファ周りがだめそうですが
02142102007/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 で認識してくれるのだけど
0215成瀬 ◆NBGqNARUSE 2007/12/31(月) 17:59:12
あー、秒数とかがダメか。
てっとり早い解決策は、ID3タグをID3v2 (Unicode)に変換することじゃないかなぁ。
一括変換できるソフトはSTEPくらいしか知りませんが。
http://hp.vector.co.jp/authors/VA012911/

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

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

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

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

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

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

こっちじゃ動いたけどあっちじゃ動かない、系のトラブルも
回避できますし。
0225名無しさん@お腹いっぱい。2008/03/01(土) 20:48:25
nkf --guessで、ファイル名も表示する方法ない?
複数ファイル入れた時は、表示されるんだが・・・
0226成瀬 ◆NBGqNARUSE 2008/03/01(土) 21:43:27
nkf 単体でやる方法はありませんね。
常にファイル名表示ーするとたぶん問題なんだろうなぁ。
0229名無しさん@お腹いっぱい。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ファイルづつの操作なのでしょうか?
一括変換の方法も書いてあるのかもしれないけど
疲れて最後までよめませんでした
どなたかわかるかたお願いします
0231名無しさん@お腹いっぱい。2008/04/12(土) 03:37:34
>>230
えっそうなんですか
もうひとつ漢字とらんさーというツールも教えてもらったんだけど
フォルダーごとエンコードしてみたら2割くらいはバイナリかもしれないと
エンコード出来なかった表示がでてきた
それでファイルを1枚づつ確認してみたら
見事に1枚もエンコード変換できていませんでした
nkfに期待してるのですが
使い方わかんないよ
レスありがと
気が向いたら使用方法教えて下さいね
おやすみ
0232名無しさん@お腹いっぱい。2008/04/12(土) 03:50:01
nkfの自動判別使った奴があるから探して使いなよ。

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

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

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

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

>>240
commit a6a715f3686cb70d38c6616c8e03830ef34d9478
にて修正しました
0242名無しさん@お腹いっぱい。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 で解決してるのかなぁ
0244名無しさん@お腹いっぱい。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)
コンニチハ
0245名無しさん@お腹いっぱい。2009/09/02(水) 20:15:12
>>242
手元にDLL用の環境がないので確認できてないんですが、今でもそうなりますかね。
しばらく大きな更新の予定もないので、ここらで2.1.0でも出そうかと思いつ。

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

>>244
これはバグですね、直します。
0246名無しさん@お腹いっぱい。2009/09/03(木) 00:23:30
そうですね、 Ruby/transcode にも要る
(現状だと net/imap などは自前で実装してますね) と思いますが、
nkf にも欲しいところです。
0250名無しさん@お腹いっぱい。2009/12/29(火) 17:24:35
64bit版てあるのかな?
0253efialtes2010/02/14(日) 21:37:04
skf にそういう機能はないです。nkf の方は対応したことになっているらしいんですけど、もともとロカールからエンコーディングを抽出するのは POSIX 仕様上困難なので、なにか上手い方法が見つかったら考えます。
0254名無しさん@お腹いっぱい。2010/05/23(日) 12:34:07
nkfで2ch内のスレタイ検索してここに来ました。(ここだけでした)
ウインドウズ環境でnkf32.exeを使ってみた(nkf32.exe -w16L --overwrite)の
ですが、全角の―(ダッシュ)がハイフンだかマイナスだかに変わってしまいます!
これは滅茶苦茶困ります。もう泣きそうです。
誰に言えばいいのか分からないからここに書きます、何とかしてください!!
0256名無しさん@お腹いっぱい。2010/05/23(日) 15:18:36
>>255
ぎゃー、上手くいきました!
嬉しいです、どうもありがとう。
ショックで良く調べもせず騒いですみませんでした。
本当にありがとう!
0261名無しさん@お腹いっぱい。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_?=
0263名無しさん@お腹いっぱい。2010/06/28(月) 22:38:56
nkf.exeの64bitOSに対応したバージョンって、ないでしょうか?

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

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

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

コマンドラインから

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

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

なにか打開策ないでしょうか。
0267名無しさん@お腹いっぱい。2010/06/29(火) 14:44:25
Windowsの文字コードだと、変換できないことが多々あるな・・・。
ファイル名とか。

仕方ないので、find -inum -exec mvで変更してるけど
なんか別の方法はないんだろうか。
0268名無しさん@お腹いっぱい。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 とかも同様。
0271名無しさん@そうだ選挙に行こう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
$
0272名無しさん@お腹いっぱい。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」は保存できないのです。
0273名無しさん@お腹いっぱい。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に改版されていたんですね。
0274名無しさん@お腹いっぱい。2010/07/19(月) 15:38:09
下をデコードしてみるとダメな理由がわかるかと思います。
このあたり MIME encode って難しいんですよねぇ。

リポジトリ内のバージョンはリリース後の次のコミットで上がります。
ちなみに、2.1.1 は Ruby 1.9.2 がリリースされるころに出ます。
0277名無しさん@お腹いっぱい。2010/09/13(月) 23:24:00
あらま。
19:30にsourceforgeを覗いたときはまだ2.1.0が最新だったのに、生き馬の目を抜くような。
02802782010/09/22(水) 13:23:20
ありがとう。解決しました。
0291名無しさん@お腹いっぱい。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 に変換される。
0295名無しさん@お腹いっぱい。2011/07/28(木) 20:03:31.55
> nkf -Ew で変換すると e2 80 94

EM DASHか

> iconvで変換すると e2 80 95

HORIZONTAL BARかって違いだよね。
0298アンネ2011/12/10(土) 00:00:22.89
やぁ(笑)
0301名無しさん@お腹いっぱい。2012/03/16(金) 11:19:06.84
“--windows“ に “-x“ も加えてくだしa
つか、半角カナのある文字種に変換するときは、わざわざ全角に直さんでも(デフォルト)ええのでは
0303名無しさん@お腹いっぱい。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
と同じ結果になってくれんですかー。
0305名無しさん@お腹いっぱい。2012/04/30(月) 17:44:59.84
何を入力しても、一つ目のnkfのデフォルト出力コードが表示されるだけでは。
0308名無しさん@お腹いっぱい。2013/07/09(火) NY:AN:NY.AN
まだ何か実装しないといけないことってあるんかな。
正直nkfのコードってかなり読みにくいしメンテするのも辛そう
0309名無しさん@お腹いっぱい。2013/09/20(金) 05:15:16.91
nkfでコード変換のついでに全角スペースを半角スペース2個に変換したかったので
man見たら -Z2 っていうオプションがあったので使ったら、、
全角スペースだけじゃなく、全角英数記号まで半角に変換されるw
全角スペース→半角スペース2個の変換だけをやるオプションないの?
そのためだけにパイプでsedかますの無駄っぽいので。
0316名無しさん@お腹いっぱい。2015/05/23(土) 11:04:46.41
ファイルの途中で文字コードが変わる時の対応がイマイチだな。
もっと改善求む。
0317名無しさん@お腹いっぱい。2015/05/24(日) 04:56:56.32
>>316
どんなファイルだよ

次は行の途中でとか言い出すんだろ?
0320名無しさん@お腹いっぱい。2017/11/06(月) 12:05:13.03
今頃気がついたけど、nkf.docに Z4のオプション記載が抜けてる・・
0324名無しさん@お腹いっぱい。2017/12/29(金) 06:56:18.49
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

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

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

N0UG8
0327名無しさん@お腹いっぱい。2022/01/23(日) 01:36:21.02
停滞してるね
0328名無しさん@お腹いっぱい。2022/02/21(月) 12:46:03.87
もうutf-8普及しすぎて大量バッチ処理する需要が減ったのでは
たまになんか化けてるの見たら反射的にnkf -gするけど、たまに程度なら遅いvimとかでも変換は済むし
0329名無しさん@お腹いっぱい。2023/01/05(木) 21:46:40.01
github.com/nurse/nkf って何なの。
ja.osdn.net/projects/nkf/ の派生か何か?
0330名無しさん@お腹いっぱい。2023/02/01(水) 20:40:19.23
んこフー
レスを投稿する


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