(PHP) 韓国語で書かれたサイトの文字コードを取得するにはどうしたらいいのでしょうか?


EUC-JPやUTF-8などはしっかり取得できるものの www.yahoo.co.kr などの EUC-KR の文字コードの場合 mb_detect_encoding で文字コードを出そうとするとEUC-JPになってします。

日本語、英語でもちゃんと各国の文字コードを取得するにはどうしたらいいのでしょうか?

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2006/04/15 01:54:58
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数75

ポイント32pt

PHPはデフォルトの状態では韓国語に対応していません。

(中国語、ロシア語にも対応していません。)

関係しそうな部分をピックアップしておきます。

mbstring は拡張モジュールです。つまり、デフォルトでは 有効にならないということです。 configure スクリプトでモジュールを有効にする必要が あります。詳細は、インストールの 節を参照してください。

--enable-mbstring=kr を 使用した場合、韓国語のエンコーディングがサポートされます。

また、--enable-mbstring=all を指定した場合、サポートされるすべての文字エンコーディングが 有効となるので便利です。

注意: 以前のバージョンとの互換性のため、何もオプションを指定せずに --enable-mbstring を使用した場合は 日本語のエンコーディングがサポートされます。

phpinfo()でconfigureの内容を確認してみてください。

もし、すでに韓国語が使える(--enable-mbstring=kr、または--enable-mbstring=allが設定されている)場合、mb_detect_encodingでの設定でEUC-KRを追加すれば正しく判定できると思います。

試していないので間違っている可能性もありますが、mbstring.languageをneutral(UTF-8)に設定しておいた方が良いかもしれません。

mbstring.languageの設定はphp.iniで変更するか、あるいはini_setでファイルごとに変更してください。

実際に試していないので確実ではありませんが、参考になると幸いです。

id:esecua

ありがとうございました。

2006/04/15 01:53:00
id:WATARU00 No.2

回答回数149ベストアンサー獲得回数9

ポイント8pt

ためしてみてください。

スタート→コントロール パネル→日付時刻地域と言語のオプション→地域と言語のオプション→補足言語サポートの東アジア言語ファイルのインストールにチェックして適用をクリック

これで大丈夫だと思います。

id:esecua

なんのことですか?

2006/04/15 01:49:27
id:abunakunai No.3

回答回数26ベストアンサー獲得回数3

ポイント40pt

mb_detect_order()で検出順序を指定してあげます。

mb_detect_order('iso-2022-jp, utf8, euc-kr, eucjp-win');

などのように。

このとき、コードがかぶると先頭から順に一致したものに

マッチするので、並び方も重要です。

eucよりeuc-krを先に検出したい場合は上記のようにすればokです。

id:esecua

OKです。ありがとうございました。

2006/04/15 01:52:42

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません