[PHP-users 26137] Re: mb_convert で文字化け
MORIYAMA Masayuki
msyk @ mtg.biglobe.ne.jp
2005年 7月 13日 (水) 11:47:33 JST
森山将之です。
On Wed, 13 Jul 2005 10:37:39 +0900
ishikata @ anet.ne.jp wrote:
> 機種依存文字との認識はしているのですが、EUCのままWindows のIE等で表示す
> ると正常に表示され、PHPにてmb_convert_encodingしてSJISのCSV等に出力する
> と文字化けしてしまい困っています。(IEで表示出来なければ説明出来るのです
> が表示出来てしまうので・・・)
Windows の IE の EUC-JP は CP51932 と呼ばれるもので、eucJP-open
(PHP では eucjP-win) とは異なるものです。
PHP の eucJP-win で変換すると文字化けします。
機種依存文字を正しく取り扱うには、PHP の HTTP 入出力を SJIS-win もしく
は UTF-8 にする必要があります。
UTF-8 は別の問題(ブラウザによってUTF-8 での「〜」などの文字のコード値
が異なる)がありますので、個人的には HTTPの入出力文字コードは SJIS-win
とする事を推奨します。
PHP の内部エンコーディングに関しては UTF-8 とした方がいいでしょうね。
# CP932(SJIS-win)<->Unicode の変換は、多くのソフトで実装されていて比較
# 的に安定して使えますので。
この辺のノウハウは、Web上に明文化された資料がないので、問題が発覚して
から慌てて調べて、試行錯誤してみたりするけれども、問題解決できないとい
うケースが多いのかもしれませんね。
‖森山 将之 (MORIYAMA Masayuki)
‖e-mail: msyk @ mtg.biglobe.ne.jp
PHP-users メーリングリストの案内