goo blog サービス終了のお知らせ 

情報システム管理者のつぶやき日報

開発とは関係のない話の方がメインだったりしますが、マジメにシステム開発の話も織り交ぜつつ進行させます。

誰もが一度はつまずく日本語文字コードの扱い

2009年03月27日 | IT日記
昔からWEB開発に携わってきた方々であれば、今さら「Shift JIS(SJIS)」でプログラムを組もうとは誰も考えないと思います。それほど、Shift JISには苦しめられてきた過去があるからです。
このgooブログは日本語文字コードに「日本語EUC(EUC-JP)」を採用していますね。(HTMLソース中の6行目あたりにcharset=euc-jpとあります)
今後は日本語EUCも徐々に廃れていき、Unicodeが標準的に使われていくことになるでしょう。
その理由は単純明快!世界中のありとあらゆるOSと開発言語がUnicode対応するようになったからです。
マックもWindowsも携帯電話も、今や「UTF-8」が標準文字コードです。

Windows XPやMac OS9までは、日本語文字コードはShift JISが標準でした。
その為に、WEBプログラムでもShift JISが扱えるよう配慮してきたわけですが、このShift JISがくせ者で、思いも寄らぬところで文字化けを起こします。
文字化けの原因は、いわゆる「5C問題」と呼ばれるもので、動いているプログラムから見たら、Shift JISの日本語は「どこからどこまでが日本語の文字ですか?」という不安定な要素でしかなかった。日本語ではよく使用する「構」「申」「能」「予」「表」などの漢字は、SJISコード2バイト目が「xx5C」となるため、エスケープ文字と勘違いされて文字化けを引き起こします。そのためプログラムを書く人は、この文字化けを回避するために、細心の注意を払って開発する必要があったのです。

自動メール配信プログラムではさらに厄介です。Eメールの世界では、日本語は「JISコード(日本語JIS)」が標準です。(これはSJISとも違う文字コードです)
送信したメールをメーラーで確認すると、タイトル(Subject)は日本語でも読めるのに、本文(Body)で文字化けする、とかその逆であるとか、このメーラーで受信すると読めるが、他のメーラーで読み込むと文字化けするなど、複雑怪奇な現象と向き合う羽目になります。

こうした日本語文字を扱うが故の開発の苦労も、システム全体がUnicodeで作られるとかなり軽減されてスマートになります。

「日本語が文字化けーーーって全然意味わかんね・・」

と10年後の新人プログラマーが口にしそうで怖いです。

最新の画像もっと見る