user icon

文字コードの話(EUC-JP)

大体知ってるという人も多いと思うので、概略だけ。

EUC-JPは拡張としてマイクロソフトが規定したCP51932と 日本ベンダ協議会が規定したeucJP-msが有ります。何が違うかと言うと
前者はJIS X 0212が無い、NEC選定IBM拡張文字が有る、ユーザ定義文字が入らない
後者はJIS X 0212が有る、NEC選定IBM拡張文字が無い、ユーザ定義文字が入る
と言う事のようです。
因みにブラウザではIEはCP51932のみ対応で、FirefoxやOperaは両方対応しているようです(表示に関して)。
で、またややこしい話ですが、これらの3ブラウザ全て送信時はCP51932らしいんですが
FirefoxだけはJIS X 0212をエンティティ化(数値文字列化って言うのかな)しないで送るので、Firefoxで送信した文字だけはFirefox以外で見ると文字化けする事があるという。
追記:今もそうなのか時間があれば調べたいと思います。

またSQLサーバではPostgreSQLとMySQLはeucJP-msですので、同じEUC-JPでも微妙に違う文字が送られて来る事を意識しないといけないんですね。

PHPでは5.2.1以降でしかeucJP-msは対応していませんので、中間処理もこれより前のバージョンでは手で修正が必要になるようです。

あとは他の文字コードからの変換で微妙に違う字体になったりする事もあるらしいです。

まぁ、SJISもEUC-JPも色々と問題があるんですが、UTF-8も問題が無いわけではないんですね。
その辺はサロゲートペアで調べれば出ると思います。対応アプリとかメモ帳でバックスペースとか。

間違いに関して、突っ込みお待ちしております。

Facebooktwitterlinkedintumblrmail

コメントは受け付けていません。