- 締切済み
PHPで韓国語の表示がうまくいきません
PHP4.3.3で韓国語Webページを作成しているのですが、 IEでアクセス時、EUC-JPが選択されておりハングル文字が文字化けしてしまいます。(韓国語はEUC-KRで記述) HTMLのデザイン部分をincludeして使用しているので、 WebサーバからハングルのHTMLファイルを表示させる場合にはハングルが表示されます。 また、別のPHPサーバではPHPからEUC-KRのファイルをincludeしても問題なくハングルが表示されており、 phpinfo()で違いをみるとmbstringにKorean support の有無の差がありました。 ただ、韓国語のサイトを作るサーバはKorean support が無く、 PHPの再インストールもできない状況なので なんとか解決方法は無いか、と探しています。 何かご存知でしたら情報をいただけますと幸いです。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
header("Content-type: text/html; charset=EUC-KR"); と書いておけば普通に動くような気がしますが、実際にブラウザなどでひらくとHTTPはどのようなヘッダを書き出しているのでしょうか? default_charsetにEUC-KRを入れたり空にしたりするとどのようになるでしょうか?
- athanasius
- ベストアンサー率37% (361/964)
#2です。 それでは、 ini_set('mbstring.language','neutral'); ini_set('mbstring.http_output','pass'); と指定して、 header("Content-type: text/html; charset=EUC-KR"); かメタタグでエンコードを記述してみてはどうでしょうか?
- athanasius
- ベストアンサー率37% (361/964)
韓国語を表示させたいファイルに、 ini_set('mbstring.http_output','EUC-KR'); とか ini_set('mbstring.language','korean'); を入れてみるというのは?
- php504
- ベストアンサー率42% (926/2160)
PHPに header("Content-type: text/html; charset=EUC-KR"); を書いておけばいいのではないでしょうか。
補足
php504様、ご回答ありがとうございます。 上記 header("Content-type: text/html; charset=EUC-KR"); を試しても駄目でした。最初にEUC-JPが選択されてしまいます。 また、HTMLのmetaタグ内にも <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> と記述しております。 さらに mb_http_output("EUC-KR"); のように記述すると Warning: mb_http_output(): Unknown encoding "EUC-KR" in /home/wwwroot/takara-bio/html/realtime-kr/prt_rs_kr/search.php on line 20 とWarningが発生します。 (別のmbstringにKorea supportのあるサーバではWarningが出ないのですが・・・) なんとか現在動いてるPHPの設定を変えずにプログラムを稼動させたく思います。 よろしくお願いします。
補足
アドバイスありがとうございます。 ini_set('mbstring.language','korean'); はエラーは出ないのですが ini_set('mbstring.http_output','EUC-KR'); を入れると Warning: mb_http_output(): Unknown encoding "EUC-KR" in /home/wwwroot/takara-bio/html/realtime-kr/prt_rs_kr/search.php on line 20 とWarningが出ます。 ini_set('mbstring.language','korean'); だけでも、やはり最初にEUC-JPが選択されてしまいます。