- ベストアンサー
PHPの文字コード
phpでの文字コードについて、どうするか迷っています。 perlの時はutf8に統一しましたが、phpの場合、ソースはeuc-jpにして、html出力もeuc-jpにする例が多いのですが、私としては、ソースはutf8にしてhtml出力もutf8にしようと考えています。 理由は、半角カナやIBM拡張文字などはeuc-jpでは使えないためです。 みなさんにお聞きしますが、utf8ベースで開発した場合、文字列操作や正規表現やDB関係などで困るような具体的な例が知りたいです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
UTF-8でまず問題ないと思いますけど。 最近はUTF-8のコードが増えてきています(LinuxがUTF化しているため)。 従来はサーバがEUCだったため、UTFを扱いにくかった(エディタも)と言う事だと思いますが。 過去にさかのぼって変えようとまでは思っていませんが、新しく作る物は出来るだけUTF-8で書いてますけど、特に問題は無いですね。気になったのはpreg_matchの時のオプションu(ユニコードを使う)くらいですか。常に意識さえしていれば問題が起こった時の対処も楽です。 メール送信時に文字化け、と言う事が一番おこりそうな事ですが、これはどの文字コードの時でも問題が起こる可能性ははらんでいますから、あえて、と言うほどじゃないですね。あと、当然ですが、携帯対策。これはSJISですよね。入出力をSJIS変換すればこれも問題ありません。
その他の回答 (2)
- Rasyuki
- ベストアンサー率57% (19/33)
自分はutf8で特に問題はありません。 以前にBOMでちょっと困ったことはありましたが、 それさえ気をつければ問題はないと思います。 携帯サイト作成の場合はMySQL[utf8]とPHP[SJIS]でしています。
- SHOW001
- ベストアンサー率85% (6/7)
あくまで参考意見ですが。 PHPの場合、EUC-JPがいいといわれていますが…。 理由は忘れましたが、自分はSJISを使っています。 とくに利点はないと思いますが。 ただ、MySQLはEUC-JPですので データベースを利用するときは mb_convert_encodingですべてエンコードをかえていますので。 それ以外はとくに問題は発生していません。 正規表現などはPHP中で mb_regex_encoding("SJIS"); //SJISの場合 と明示的にエンコードを指定するとうまくいきます。 ちょっとずれた回答かもしれませんが…。