- ベストアンサー
PHPの文字コードについてお願いします
- PHPの文字コードについて質問させてください。Apache2、MYSQL、PHP5を使用して勉強しているものですが、文字コードについてわからないことがあります。
- 文字コードを変更する場合の設定方法や、php.iniの設定の意味について教えていただけると助かります。
- 具体的な質問として、1. UTF-8に変える場合のApache2の設定について、2. php.iniの設定の意味について、3. SHIFT-JISで書いたPHPファイルの保存方法について、4. PHPとMySQLの文字コードの統一について、5. UTF-8に変える場合のphp.iniの設定部分について、お教えください。よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず文字コードに関連する設定部分の説明をしますね。 default_charset = "Shift_Jis" PHP4以降では、httpヘッダにデフォルトで常にContent-type:ヘッダで character encodingを出力します。 他のものを正しく指定してあれば空にして出力しないようにしたほうが良いでしょう。 mbstring.internal_encoding = EUC-JP PHPの内部エンコードを指定します。 スクリプトファイルのエンコードではありません。 この設定の場合、httpヘッダではshift_jisとして出力させ、PHPはEUC_JPで実行し、出力はEUC_JPでってなるんじゃないかな。 以下、回答 >1 特に必要はありませんが、もしAddDefaultCharsetが設定されているようであれば、 AddDefaultCharset = Off としたほうがトラブルがなくて良いでしょう >2 設定の意味についてはすでに説明ずみ。 できれば、文字コードは統一したほうがよいでしょう。 私もUTF-8での統一をお勧めします。 default_charset = mbstring.internal_encoding = UTF-8 mbstring.http_output = UTF-8 上記のディレクティブだけ、上記のように修正すればUTF-8に統一されます >3 質問の意図がよく分かりません。 UTF-8にする場合は、UTF-8に対応したテキストエディタを使用し、保存するときに文字コードを設定するところがあるはずなので、そこで指定します。 Windowsで動くテキストエディタは特に指定せずに保存すると、一般的にはShift_Jisで保存されます。 >4 統一したほうがよいです。 MySQLもUTF-8にすればよいとおもいます。 文字コードが異なる場合、ドライバが自動的に変換してくれますが、トラブルになることもあるので、統一したほうがトラブルがなくて良いです >5 2を見てください PHPのマニュアルに設定の意味は書かれているので、一度見てみるとよいでしょう
お礼
すべての質問に答えて頂きほんとうにありがとうございました。 とても参考になりました。文字コードは全然わからないですが、これを読んで勉強したいと思います。