※ ChatGPTを利用し、要約された質問です(原文:php.iniのエンコーディングの設定について)
php.iniのエンコーディングの設定について
このQ&Aのポイント
PHPの設定ファイルであるphp.iniには、エンコーディングに関する設定があります。
また、Apacheの設定ファイルであるhttpd.confやMySQLの設定ファイルであるmy.cnfにも、エンコーディングに関する設定があります。
これらの設定は、Webアプリケーションの開発時やデータの受け渡し時に重要な役割を果たします。
現在、FedoraCore6、Apache2、PHP5、MySQLの環境で勉強をしているのですが、
それぞれに文字コードの設定がありますが、色々調べてみたものの、
どうもスッキリせずに分からない部分があります。
php.ini
(1)mbstring.internal_encoding:
PHPファイル作成するのに使用する文字コードを指定
(2)mbstring.http_input:HTMLファイルから呼び出されるとき、そのHTMLファイルと同じ文字コードを指定(html→phpへデータの受け渡し)
(3)mbstring.http_output:PHPからHTMLファイルに出力する時にエンコードする文字コード(php→htmlへデータの受け渡し時にエンコーディングする文字コード)
httpd.conf
(4)AddDefaultCharset:Httpヘッダにつける文字コードの指定
my.cnf
(5)default-character-set:MySQL内のデータの文字コード
ここで、例えば、
HTMLファイルのフォームから入力したキーを元に、
PHPでmysqlの関数を使ってmysqlからデータを取得、HTMLへと出力するとした場合。
この(1)~(5)の文字コードの設定はどうかかわってくるのでしょうか??
また(3)と(4)の違いは、
(3)はhttpヘッダに文字コード指定をつけるだけに対して、
(4)は実際にエンコードしてhttpヘッダに文字コード指定をつけるのでしょうか?
(3)と(4)の違いとは?
よろしくお願いいたします。
お礼
ありがとうございました、スッキリしました!どうもこの文字コードらへんがとっつきにくくて困っていたところで、非常に助かりました!どの資料を見てもスッキリしなかったのに、hrm_mmmさんの非常に分かりやすい説明に感激です!本当にありがとうございました!