• 締切済み

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

  • PHP
  • 回答数4
  • ありがとう数1

みんなの回答

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

関連するQ&A

  • Dreamweaverで韓国語表示について

    Dreamweaverで韓国語表示について Dreamweaver8でホームページの作成をしています。 前任者が作成してアップしてある韓国語のページの 修正をする必要があり、韓国語はわからないのですが、 タグの修正など簡単な修正は自分でしたいと思っています。 ですが、韓国語のページファイルをDreamweaver8で開くと 文字化けしてしまって、修正ができません。 韓国語フォントを入れたり、パソコン(WindowsXP)の言語設定を 変えてみて、IEなどのインターネット上で韓国語のサイトは 文字化けせずに表示できるようになりました。 エクセルなどに入力してもらった韓国語も文字化けせずに 表示されます。 なので、コピーして貼り付ければ、韓国語の文章も修正できるのですが Dreamweaverで韓国語が表示されません。 バージョンの問題かと思い、CS5の体験版をインストールしてみたのですが 結果は同じでした。 プレビュー画面では、□ で文字が表示され、HTML画面ではスペースに変わっています。 charsetは、euc-krに設定しています。 どなたかDreamweaverで韓国語ページを表示させるやり方を知っている方、 教えてください! よろしくお願い致します。

    • ベストアンサー
    • HTML
  • phpのini_setの使い方

    宜しくお願いします。 携帯サイトをphpで作ってるんですが、特定の条件になると文字化けします。携帯の日本語コードは『shift_jis』だと思うんですが、サーバのpnpinfoをみてみると、 mbstring.detect_order auto auto mbstring.func_overload 0 0 mbstring.http_input auto auto mbstring.http_output SJIS SJIS mbstring.internal_encoding EUC-JP EUC-JP mbstring.substitute_character no value no value となっていて、もしかしたら、 『mbstring.internal_encoding EUC-JP EUC-JP』 が原因かなーなんて漠然と思っています。 サーバのサポートを見てみると、 『mbstring.http_outputをあらかじめSJISに設定しておりますが、標準では、出力には変換ハンドラを経由しないように設定にしておりますので、基本的に日本語は、PHP4を記述したコードおよびPHP4 内での内部扱いコードに設定してあるEUCのまま出力されます。変換ハンドラを経由しないのは、互換性などの事由におきますものです。ユーザが PHP4に、出力時に自動的に出力をシフトJISにしたい場合には、コード内で変換ハンドラを利用するようにコーディングする必要があります。』 となっておりました。php初心者の私には読んでも何がなんだかさっぱりわからず、悩んでおります。 自分なりの解釈として、 『ini_set関数を使ってサーバのphpの設定を変更してあげれば、文字化けは解消する』のでは?と思い、webでini_set関数の使い方を検索してみましたが、行き着く先はphpのサイトになってしまい、見ても使い方自体はよく分かりませんでした。 大変悩んでおります!どなたか助けてください!! 宜しくお願いします。

    • ベストアンサー
    • PHP
  • DB内の日本語データがPHPで取得できない

    利用サーバ:さくらインターネットのレンタルサーバ 利用データベースのバージョン:MySQL 5.1 PHPのバージョン:PHP 5.2.×× PHPMyAdminに記載のMySQL の文字セット: UTF-8 Unicode (utf8) PHPMyAdminに記載のMySQL 接続の照合順序: utf8_general_ci htmlやPHPファイルを、EUC-JPからUTF-8に、全て変えたためなのかは分かりませんが、 データベースに格納されている日本語(というか全角文字?)データを、 PHPで取り出せなくなってしまいました。半角英数字のデータは取得できます。 そのためDBから取得して表示させている文字データのうち、日本語のみが表示されません。 【php.iniファイルの中身】 register_globals = "On" mbstring.language = "Japanese" mbstring.internal_encoding = "UTF-8" mbstring.encoding_translation = "On" default_charset = "UTF-8" output_buffering = "Off" mbstring.http_input = "auto" mbstring.http_output = "pass" mbstring.detect_order = "auto" mbstring.substitute_character = "none" 情報は足りますでしょうか?どなたか、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • 韓国サイトの韓国語の表示がされません。

    以前、こちらで質問させてもらった者です。 当方、MACユーザーです。(OS9.1) 韓国語表示をしたいとのことで、「Vector」のサイトを紹介していただきました。 http://hp.vector.co.jp/authors/VA011042/MacKrean/macKrean.htm それでやってみたのですが、その時は一瞬表示されましたが、再起動したら爆弾マークがでて、「フォントアップデータ機能拡張」をはずせというメッセージが出たので、はずして再起動させたら無事立ち上がりましたが、その後、韓国サイトでのハングルの表示がされなくなってしまいました。 (漢字等での文字バケにもならず、ハングルのところは空欄で、数字等のみの表示だけとなります) 必要なフォントも入れ、ブラウザの表示もKOREANに改めてしてもやはり表示されません。 私としては、ただ、今のところ韓国サイトをハングルで正しく表示して欲しいだけなんです。 どうすればよいのでしょうか? 「フォントアップデータ機能拡張」を元に戻すとやはり爆弾マークがでて固まってしまいます。 かわりに入れなければいけない機能拡張などがあるのでしょうか? よろしくお願いします。

  • 韓国語のサイトを見たいのですが

    ネットで韓国語を表示したいのですが。 過去のログを参考に Microsoftサイトから、Global IME for Koreanをダウンロードしてみました。 インストールはできたのですが、IMEは日本語のまま。かろうじてタスクバーのアイコンを右クリックすると「韓国語(統合)IME」が選択されますが、選択してもハングルは文字化けのままです。ちなみに、入れたのは、5.02です。アイコンをポイントすると「MSIME95 4.0」と表示されるのも怪しい現象かな、と。そしてキーボードのプロパティで選択できる言語には、韓国語が入っておりません。 どうすればハングルが表示されるか、ご存じのかた、教えてください。

  • php 文字化けについて

    はじめまして、phpについて質問があります。 最近、PHP入門の本を買ってphpインストールをして、成功しました。 しかし、プログラムで「Hello」など英語は表示できるんですが、「こんにちは、世界!」など日本語で表示させようすると「??????A??E?I」となって文字化けします。 いろいろと調べましたが、どのようにすればいいか分からないまま2週間過ぎました。どなたか教えてくださいお願いします。 以下設定情報です↓ XP Apache2.059 PHP5.2.1 php.ini 447:default_charset=EUC-JP 1165:mbstring.language=Japanese 1170:mbstring.internal_encoding=EUC=JP 1173:mbstring.http_input = auto 1177:mbstring.http_output = EUC-JP 1184:mbstring.encoding_translation = On 1188:mbstring.detect_order = auto 1192:mbstring.substitute_character = none;

    • ベストアンサー
    • PHP
  • PHP 入力値 文字化け

    phpでFormで入力した値(日本語)が文字化けしてしまいます。 環境は WinXp pro apache2.0.59 php 4.4.7 php.iniのおもな設定ですが、 mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; ブラウザからすべてShiftJisで入力されているのですが、 それがうまく EUC-JPに内部エンコードされていません。 mb_convert_encording($str,"EUC-JP","auto")をスクリプト内で 記述するとうまく表示されますが、なんとか設定で文字化けしないよう にできないでしょうか? よろしくお願いします。

    • 締切済み
    • PHP
  • 日本語表示する方法について

    LAPP環境下での開発を行っていますがまだまだ初心者でなかなか前に進みません。 →PostgreSQL (8.3.4) PHP (5.2.6) 現在、作成したプログラムを確認する際にWebブラウザで確認しているのですが DBから引っ張ってくるデータが文字化けしてその解決策が判らず困っています。EUC→Shift_JISがうまくいきません。 DB側の問題なのか、プログラム側の問題なのかも判断つきません。 <php.ini> php.iniは以下の設定を変更しました。 magic_quotes_gpc=off output_bufferring=on output_handler=mb_output_handler default_charset=Shift_JIS mbstring.language = japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none <HTML> HTMLは関係するのはheadタグのみかと思い以下のように設定しています。 charset=Shift_JISと設定しています。 以上方法論等どなたかご教授頂けないでしょうか。

    • 締切済み
    • PHP
  • php.iniを変更したのにUFT-8が文字化け

    こんにちは。教えて下さい。 Movable TypeをUTF-8で運営しようと思いましたが、使用中のサーバーのphpの文字コードがEUC-JPでした。 サーバーに問い合わせたところ、php.iniを編集するだけで文字コード変更できます、とのこと。 そこで、php.iniの mbstring.language = Japanese mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.internal_encoding = EUC-JP mbstring.detect_order = auto mbstring.substitute_character = none; を mbstring.language = neutral mbstring.encoding_translation = On mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.internal_encoding = UTF-8 mbstring.detect_order = auto mbstring.substitute_character = none; にしてみました。 当方初心者で、php.iniは初めていじりました。 EUC-JPとあった箇所またはJapaneseとあった箇所を変更したのみです。 また、Movable Typeのmt-config.cgiで 文字コードをEUC-JPからUTF-8に変更。 Movable Typeの文字コード関連の変更はこのファイルのみですのでこれで大丈夫・・・。 そう思ったのですが、Movable Typeが文字化け・・・。 php.iniの設定が間違っているのでしょうか? 助けてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • .htaccessにphp_valueが使用できな

    .htaccess: Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration, referer: 上記のエラーが表示されます。 .htaccessに記述している内容は以下の通りです。 php_value include_path '/var/www/vhosts/ドメイン' php_value mbstring.language Japanese php_flag mbstring.encoding_translation On php_value mbstring.http_input auto php_value mbstring.internal_encoding EUC-JP php_value mbstring.script_encoding EUC-JP php_value mbstring.substitute_character none php_value を使用するにはどうすればよいでしょうか? 宜しくお願い居します。

    • ベストアンサー
    • PHP

専門家に質問してみよう