文字化け「イングランド代楓シ」の原因

LINEで送る
Pocket

Yahoo!ニュースで小さな話題になっていた、以下の記事のタイトル(^_^)。

ユーロを戦うイングランド代楓シが発表…ファーディナンドが落選 (SOCCER KING) – Yahoo!ニュース

ユーロを戦うイングランド代楓シが発表…ファーディナンドが落選

リンク先は修正・削除されてしまうかもしれないので、キャプチャしておいた。

「代楓シ」の文字化け

「代楓シ」の文字化け

記事の配信元のサイトを見ると……
ユーロを戦うイングランド代表23名が発表…ファーディナンドが落選 – サッカーキング – 世界のサッカー情報サイト

ユーロを戦うイングランド代表23名が発表…ファーディナンドが落選

……となっている。
Yahoo!のコメント欄を見ると、他の記事でも同様に文字化けしていたらしいことがわかる。

WEBサイトのCGIでPerlやPHPを組んでいる人には周知のことだが、日本語文字コードでShift_JISを使っていると特定の文字が文字化けする。
その中に、よく使われる文字が含まれている。
「代表」の「」の字がそのひとつだ。
「代楓シ」となっているのは「代表」のあとになにがしかの文字がつながっていて、文字化けになっている。「シ」は半角カタカナの「シ」だと思われる。

文字コードを調べてみると……

JIS: 493D
シフトJIS: 955C
区点: 04129
Unicode: 8868
UTF8: E8 A1 A8


JIS: 4976
シフトJIS: 9596
区点: 04186
Unicode: 6963
UTF8: E6 A5 93

となっているので、「楓」に化けるには、シフトJISコードの末尾2桁の「5C」がエスケープコードとして認識され、次に続くコードと合体している考えられる。5Cは「\」マーク(バックスラッシュまたは¥の半角)のことで、CGIで「表」の文字化けを回避する際に「表\」と表記したりする。

元記事から推測して調べてみると、「23名」の「名」が怪しい……


JIS: 4C3E
シフトJIS: 96BC
区点: 04430
Unicode: 540D
UTF8: E5 90 8D

……ということで、「名」のシフトJISの頭の「96」が、「表」の頭の「95」とくっつくと「9596」となり「楓」のコードと合致する。
そして、残された「BC」は……

半角カタカナの「シ」
JIS: BC
シフトJIS: BC

……と、半角カタカナに該当するわけだ。
普通にテキストエディタで入力していて、テキストファイルでデータの受け渡しをしていたら、このようなことは起こりにくいので、おそらくWEBベースでデータをやりとりしていて、コード変換の過程が介入していると思われる。
なので、これは人為的なミスというより、文字コードとプログラム上の不適合だということ。
まぁ、初歩的なことなんだけどね(^_^)。

(Visited 19 times, 1 visits today)