[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:16282] nkf -g
いまいです。
nkf -g でファイルの文字コードを guess するときに、おかしな挙動を発見し
ました。
$ echo -ne "\xe3\x80\x80" > U3000.u8
$ hd U3000.u8
00000000 e3 80 80 |...|
00000003
$ nkf -g U3000.u8
UTF-8
$ nkf -g U3000.u8 U3000.u8
U3000.u8:UTF-8
U3000.u8:UTF-8
$ echo >> U3000.u8
$ hd U3000.u8
00000000 e3 80 80 0a |....|
00000004
$ nkf -g U3000.u8
UTF-8
$ nkf -g U3000.u8 U3000.u8
U3000.u8:UTF-8
U3000.u8:EUC-JP
^^^^^^ ???
となります。
"\xe3\x80\x80" は全角の空白です。上のは同じファイルを 2 回指定してます
が、別のファイルでも間違うときは間違います。引数に指定する順序も関係し
ているようです。
$ echo -ne "\xe3\x80\x80" > U3000.u8-1
$ echo -ne "\xe3\x80\x80" > U3000.u8-2
$ nkf -g U3000.u8-1
UTF-8
$ nkf -g U3000.u8-2
UTF-8
$ nkf -g U3000.u8-?
U3000.u8-1:UTF-8
U3000.u8-2:UTF-8
$ echo >> U3000.u8-2
$ nkf -g U3000.u8-2
UTF-8
# 単体では OK。
$ nkf -g U3000.u8-?
U3000.u8-1:UTF-8
U3000.u8-2:EUC-JP
^^^^^^ ???
$ nkf -g U3000.u8-1 U3000.u8-2
U3000.u8-1:UTF-8
U3000.u8-2:EUC-JP
^^^^^^ ???
$ nkf -g U3000.u8-2 U3000.u8-1
U3000.u8-2:UTF-8
U3000.u8-1:UTF-8
# これは OK。
U3002(「。」) だけでは再現しないけど、U3059 + U3002(「す。」)だと再現
したり…何か分かるでしょうか。
--
Nobuhiro IMAI <nov@xxxxxxxxxxxx>
Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106