Subject: [linginfo06:00090] Shift_JIS と CP932 Date: 2007年1月20日 14:42:17:JST 皆さん 大名です。 1月19日の授業で話したことの繰り返しになりますが,念のため,「Shift JIS」の ファイルを文字コードを指定して Perl で処理するときの注意を書いておきます。 dicom2 の /corpus/ChunichiShinbun/ChunichiOriginal/ にある次のファイルが, 文字コード変換や加工等をしていないオリジナルの中日新聞のファイルです。 chunichi1999.txt chunichi2000.txt chunichi2001.txt chunichi2002.txt chunichi2003.txt 文字コードは,所謂「Shift JIS」ですが,「Shift JIS」と呼ばれるものには, 文字集合に一部違いのあるバリエーションが存在するため,注意する必要が あります。 JIS 規格の Shift JIS や IANA に Shift_JIS として登録されているものは, JIS X 0208 を文字集合とするものです。これに対し,Windows で使われているのは, JIS X 0208 にない文字をいくつか追加したもので,CP932 (Windows Code Page 932) と いうものです。IANA には Windows-31J として登録されています。 上記のファイルのほとんどは,JIS X 0208 の範囲内の文字しか含んでいないようで, Shift_JIS と CP932 のどちらと考えても差し支えありませんが,2003年のものは, CP932 にはあるが Shift_JIS にはない文字を含んでいるため,厳密に言えば, 文字コードは Shift_JIS ではなく CP932 となります。 「Shift JIS」と Unicode の間のコード変換は変換表を使って行いますが, JIS X 0208 内の文字であっても,「Shift_JIS←→Unicode」の表と 「CP932←→Unicode」の表で異なる文字にマップされているものがあるため, Perl で処理するファイルが JIS X 0208 内の文字しか含まなくても,文字コードを shiftjis と指定するか cp932 と指定するかで,UTF-8 に変換したデータに違いが 生じることがあります。 -- 名古屋大学大学院国際開発研究科 国際コミュニケーション専攻 大名 力 (Tsutomu OHNA)