- ベストアンサー
ブラウザに日本語出力
初めまして、PHP初心者です。 PHPで現在、日報を書き込むプログラムを作っています。 目的としては、書き込んだ日報をDBに登録させるというプログラムです。 その中で、HTMLのフォームで入力した日本語の文章や文字列をブラウザに出力させるにはどうしたら良いのでしょうか? 普通にprintで出力させると、文字化けをしてしまい困っております。 環境は、OSはLinux、PHPVer.3、DBはPostgreSQLです。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
PHP3はi18nの国際化バージョンでしょうか? 基本的にi18nでないPHPのときはEUCでないと文字化けすると思います。i18nでもconfigureのときに--enable-i18nを指定しないとi18nになりません。 i18nだとすると、ソースの文字コードは何でかいてありますか?php.iniの中で出力する文字コードを指定してやる必要があります。具体的には i18n.http_output = SJIS のように指定します。 または、ソースの中でprint(あるいはecho)で出力する前の部分で i18n_http_output(文字コード) で出力する文字コードを指定してやればそれ以降その文字コードで出力されます。
その他の回答 (3)
データを日本語EUCにしてDBへ登録し、 日本語EUCとして出力してみて下さい。 又、出力する際は、 header("Content-Type: text/html; charset=EUC-JP"); として文字コードを明示的に指定する方法もあります。 ※これらの方法では、ソースコード自身も日本語EUCに する必要があります。
お礼
回答ありがとうございます。 一応、EUCの設定にはしています。 もう一度、よく見直してみます。 ありがとうございました。
- otoko
- ベストアンサー率0% (0/1)
HTMLまたはプログラムを書くときの文字コードがあっていないのでは? HTMLでのMETAタグで <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> を入れていますでしょうか? printのほかに<?php echo $NAME; ?>などの 方法もあります。
お礼
回答ありがとうございます。 タグの中で文字コードの指定はしています。 EUC-JPにしようが、Shift-JISにしようが、文字化けは変わりませんでした。echoも試したのですが、ダメでした。
文字コードが違うとかそういうものではないでしょうか? 一度出力してきたページの文字コードを変更してみては どうなりますか? ではでは☆
お礼
回答ありがとうございます。 出力したページの文字コードを変更しても文字化けは変わりませんでした。
お礼
お返事遅くなりまして、申し訳ありません。 只今、違う仕事が急に入ってしまい、お教えくださったこと試せていませんが、アドバイスありがとうございます。 時間が出来たら試してみたいと思います。