Entersquare Inc. ホームページ作成の株式会社エンタースクウェア

【PHP / Atomフィード】simplexml_load_file()でAtomフィードを読み込むとUTF8なのに文字化けする

【PHP / Atomフィード】simplexml_load_file()でAtomフィードを読み込むとUTF8なのに文字化けする

Atom フィードをsimplexml_load_fileで読み込んでいたものが、文字化けするようになったので、解決方法をメモしておきます。

前提

前提として、以下全てがUTF-8である必要があります。

どれか一つでも文字コードが違う場合は、まず先にそれをUTF-8に変更&指定しましょう。(domなし)

・Atomフィードのファイル
・Atomフィードソース
・取得側(simplexml_load_file()を利用する方)のファイル
・取得側ソース

解決方法

一度「file_get_contens()」でソースを取得してから、別の関数「simplexml_load_string()」へ受け渡します。

$file = file_get_contents($feed);
$obj = simplexml_load_string($file);
$entry = $obj->entry;

フィードも読み込むファイルもすべてUTF-8だった

大体、文字化けは双方の文字コードの違いだったりします。

しかし今回は、フィードも読み込み側もUTF-8、ファイルの文字コードも問題ない。

結局原因が分かりませんでしたが、simplexml_load_file()で起きている模様。

久しぶりに文字コードに振り回されました。

いつの間にかブラウザの文字コードを変更する箇所もなくなって、なんだか懐かしいです(もう嫌ですけれども)。

Firefoxではツールのサイト情報から文字コードが確認できたので助かりました。

Solutions

ソリューション

ホームページ作成

Webサイト制作・運用保守

コーポレートサイト/サービスサイト/オウンドメディアサイト/LP/EC

ウェブマーケティングの技術を使ってホームページの作成や保守を承っております。

Webのお悩み

Webのご相談・サポート

運用のお困りごと/集客のお困りごと/運用担当が居なくなったなど

Webに関するお困りごとや、お悩みなどのご相談、サポートを承っております。

その他、アクセス解析、広告運用、SNSサポートなどWebに関する事全般承っております。

詳しく見る