• 締切済み

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の再インストールもできない状況なので なんとか解決方法は無いか、と探しています。 何かご存知でしたら情報をいただけますと幸いです。

みんなの回答

回答No.4

header("Content-type: text/html; charset=EUC-KR"); と書いておけば普通に動くような気がしますが、実際にブラウザなどでひらくとHTTPはどのようなヘッダを書き出しているのでしょうか? default_charsetにEUC-KRを入れたり空にしたりするとどのようになるでしょうか?

回答No.3

#2です。 それでは、 ini_set('mbstring.language','neutral'); ini_set('mbstring.http_output','pass'); と指定して、 header("Content-type: text/html; charset=EUC-KR"); かメタタグでエンコードを記述してみてはどうでしょうか?

回答No.2

韓国語を表示させたいファイルに、 ini_set('mbstring.http_output','EUC-KR'); とか ini_set('mbstring.language','korean'); を入れてみるというのは?

show200507
質問者

補足

アドバイスありがとうございます。 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が選択されてしまいます。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

PHPに header("Content-type: text/html; charset=EUC-KR"); を書いておけばいいのではないでしょうか。

show200507
質問者

補足

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の設定を変えずにプログラムを稼動させたく思います。 よろしくお願いします。