• 締切済み

PHP5でsimple_xml_load_fileするとエラーになっちゃいます。

simple_xml_load_fileを使ってXMLを読み込んでいるのですが、読み込みの時点でエラーが出てしまいます。 Warning: simplexml_load_file() [function.simplexml-load-file]: input conversion failed due to input error, bytes 0xAD 0xB5 0x3C 0x2F ↑こんな感じです。 原因を探ったところ、XMLファイルのデータ中にローマ数字(I、II、・・)があるとこのようになることが分かりました。 ちなみにsimplexml_load_stringを使用してもほぼ同様のエラーが発生しました。 ローマ数字入りのXMLファイルを読み込むことはできないのでしょうか?ご存じでしたら知恵を拝借したいのですが・・・。 ※SAX、DOMでも読み込めず(T_T)

みんなの回答

回答No.1

いくつか方法があります。 ・XML文書のEncoding指定を、EUC-JPからeucJP-winにする。  <?xml version="1.0" encoding="EUC-JP"?>  →<?xml version="1.0" encoding="eucJP-win"?>  (ローマ数字は13区 NEC特殊文字で、EUC-JPには含まれない文字ですが、eucJP-winには含まれています)。 ・XML文書内のI、IIなどの文字を実体参照化する。  <name>ほげI</name>  →<name>ほげⅠ</name>  <name>ふぉII</name>  →<name>ふぉⅡ</name> #上記は、<>&を全角で書いてますが、適宜半角にしてください。

Dice-K18
質問者

お礼

返事遅くなりました。すいません。 結論としてファイル内容を読み込んで、UTF-8からUTF-8へエンコードをかければそのまま取得することができました。 ありがとうございました。

関連するQ&A