Ticket #29997

UTF-8で保存した「陌間」という文字が正しく自動認識されない

Open Date: 2012-11-02 18:01 Last Update: 2012-11-02 18:02

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

お世話になります。 nkf(ver:2.0.8及びver:2.1.2)で自動認識が正しく動作しないケースがありました。

test.txtに「陌間」とのみ書いて、UTF-8でテキスト保存します。 そのファイルを自動認識させると、Shift-JISと誤判定されます。

# nkf -g test.txt
Shift_JIS

そのため、この状態でShift-JIS以外の日本語対応コードに変換すると、
#nkf -j test.txt > test-jis.txt

test-jis.txtには「髯碁俣」といった誤変換した結果となりました。 なお、test.txtをEUCなどの他の日本語対応コードで保存した場合は、正しく自動認識されました。

以上、ご報告まで。

Ticket History (3/3 Histories)

2012-11-02 18:01 Updated by: sawa-ims
  • New Ticket "UTF-8保存した「陌間」という文字が正しく自動認識されない" created
2012-11-02 18:02 Updated by: sawa-ims
  • Summary Updated
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2012-11-02 18:02
2012-11-06 10:22 Updated by: None
Comment

バイト列 E9 99 8C E9 96 93 のエンコーディングは Shift_JIS としても UTF-8 としても正当なものです。

  • Shift_JIS (または CP932 等の Shift_JIS の亜種)
    E9 99"髯"
    8C E9"碁"
    96 93"俣"
  • UTF-8(BOMなし)
    E9 99 8C"陌"
    E9 96 93"間"

入力側のエンコーディングを自動認識に任せると、 このようなケースも起こり得ます。
(一般に、入力が長いほど意図しないエンコーディングに 認識される可能性を排除できます)

今回の例では正統に解釈し得る複数のエンコーディングのうち、 先発組の Shift_JIS が後発組の UTF-8 より優先されたものと思います。
(ソースファイルを見ていないので全くの推測ですが)

とはいえ -g (--guess) オプションでは、 解釈し得る全てのエンコーディングを列挙されたほうが有り難いかも知れませんね。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login