- ベストアンサー
PHPプログラム内でHTML作成時の文字コード
お世話になります。 PHPコード・及び内部エンコーディングはEUC-JPでプログラムを作成しています。 プログラムでHTMLファイルを作成する処理があるのですが、どうしてもEUC-JPで作成されてしまいます。 中身(<html>~)はmbstringできちんとShift_JISに変換して出力するのですが、ファイル自体の文字コードがEUC-JPで保存されているようで、ブラウザで表示するとエンコードがEUC-JPになって表示され、文字化けしております。 ブラウザのエンコードをShift_JISに直せば文字化けしないで表示されるのですが…。 プログラムから作成したファイルをShift_JISで作成する方法をご教授いただけましたら幸いです。 php.iniの設定をいじる権限はありません。また、プログラムをShift_JISにする以外で方法をお教えいただけないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1のかたの回答に勝手に補足すると、 header("Content-Type: text/html; charset=Shift_JIS"); で、HTTPレスポンスのヘッダも指定した方がよいです。 >中身(<html>~)はmbstringできちんとShift_JISに変換して出力するのですが、 既に使っているかもしれませんが、mb_output_handler関数を使うのが楽な方法です。 http://jp.php.net/manual/ja/function.mb-output-handler.php
その他の回答 (1)
<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS">
お礼
遅くなりましたが、ご回答ありがとうございました。 metaタグの記述はしておりましたが、再度確認できましてよかったです。 無事解決いたしました。 どうやら、サーバの環境の問題だったようで、EUC-JPだと自動的に判断してしまう?らしかったです(メタタグで記述しても)。 ありがとうございました。
お礼
遅くなりましたが、ご回答ありがとうございました。 ヘッダも出力していたのですが、再度確認できたので非常に勉強になりました。 mb_output_handler関数というやり方は初めて知りました!本当にとても勉強になり、感謝しております。 無事解決いたしました。 どうやら、サーバの環境の問題だったようで、EUC-JPだと自動的に判断してしまう?らしかったです(メタタグで記述しても)。 ありがとうございました。