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


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

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

回答の条件
  • 1人3回まで
  • 登録:2006/04/15 00:27:52
  • 終了:2006/04/15 01:54:58

回答(3件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数752006/04/15 01:25:29

ポイント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

WATARU00回答回数149ベストアンサー獲得回数92006/04/15 01:17:25

ポイント8pt

ためしてみてください。

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

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

id:esecua

なんのことですか?

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

abunakunai回答回数26ベストアンサー獲得回数32006/04/15 01:21:55

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません