- ベストアンサー
mb_convert_encoding で?になる。
$old = "名前"; $new = mb_convert_encoding($old,"EUC-JP","auto"); echo "$new"; 上のスクリプトを実行すると、’名前’が半角の’?’に なるんですよー。 何ででしょうか? ページもEUC-JPだし、phpもEUCです。 PHP Version 4.3.10で、php.iniの mbstring.internal_encodingはEUC-JPです。 OSは、テストなので自分のPCのw2kです。 mb_convert_encodingが実験的だからなのでしょうか? 他にも同じようになる物があるのでしょうか? 対処方法はあるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- campanella_77
- ベストアンサー率66% (35/53)
回答No.3
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
回答No.1
お礼
mb_detect_encoding($old)で文字コードを調べると、 UTF-8でした。という事は、 mb_detect_order("ASCII,JIS,UTF-8,EUC-JP,SJIS"); だと、EUCより優先順位のたかい、UTF-8になってしまい、 EUCを一番最初にすると、きちんと表示されました。 で、ここで問題の原点に気がつきました。 metaタグで、charset=EUC-JP を記入しているので、 FORMから送られてくる情報は、EUCなのです。 マルチバイト関連が実験的なら、あまり考えずにその ままでもいいのかなー、と思いました。