• ベストアンサー
  • 暇なときにでも

文字化けの防止法

  • 質問No.7110263
  • 閲覧数271
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 96% (120/125)

ネット上のサイトから、特定の情報を取り出し、その情報のファイルを作成し、保存するというプログラムを作っています。


取得するサイトの文字コードは、

<meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">

と指定されていました。


IEでこのページを開くと、エンコードは自動選択で「EUC」になっていました。


さて、php_editor の文字コードを「UTF-8」に指定し、プログラムを作成しているのですが、

全角文字の含まれた文字列を取得し、表示させようとすると、文字化けしてしまいます。
(このときの表示画面は、http://localhost/~です)

設定を変更していると、IE(http://localhost/~)の表示の文字化けも進み、そのときのIEの

エンコードを確認すると、中国語系や西ヨーロッパ系のものになっていることがありました。


文字化けさせない手順や、設定はどのように行えばいいのでしょうか?

質問者が選んだベストアンサー

  • 回答No.1
  • ベストアンサー

ベストアンサー率 54% (327/598)

UTF8で書かれたPHPプログラムは、当然のことながら読み込むデータ(文字列)はUTF8で書かれていると判断します。
なので、別の文字コードのものを読み込んで、そのまま表示すると文字化けする事になります。
それなら文字コードをUTF8に変換してやればいい。
とすると、『PHP 文字コード 変換』とでもキーワードにしてググれば、答えに辿りつくでしょう。
お礼コメント
dv8hjkwf

お礼率 96% (120/125)

いろいろ調べたところ、

mb_regex_encoding("UTF-8"); を書き込んだ上で、取得したものに対して、mb_convert_encodingをかけるとうまく表示できました。

参考にしたサイト:http://d.hatena.ne.jp/hiroiwa/20101202/1291269590

奥が深そうなので、もっと調べることにします。
投稿日時:2011/11/04 01:01
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ