2011-12-04 7 views
0

5時間の研究の後、私はここに書きますので、私は非常に必死ですべてを試してみましょう。 私は第三者からのXMLファイルを持っています。 SimpleXMLElementで解析しようとすると、文字列が有効なXML形式ではないと言われています。また、XMLファイルがANSIエンコーディングされているためにこの問題が発生することもわかりました。私はファイルをUTF-8に変換しようとしました - >それはパーサーによって読み込まれますが、私のキリル文字のシンボルはすべて失われ、意味のない文字に置き換えられます。 次に、メモ帳++で、コンテンツをコピーしてutf8エンコーディングのファイルを作成し、内容を貼り付けました。>これはうまくいき、パーサーが読み込んだものです。私はコードで行いましたが、結果はありません - >ファイルの内容を取得し、最初のバイトでファイルを作成し、UTF-8ファイルのバイトを出力し、コンテンツを出力し、キリル文字の代わりに意味のない文字を出力します。私は本当にこのファイルをXMLパーサに有効なUTF-8に変換する必要がありますか、XMLから配列へファイルを解析する別の方法を教えてください。php xmlエンコーディングの問題

+0

あなたはSOをもっと早く考えるべきです;ブラウザでxmlファイルを開くとどうなりますか?次に解析エラーが出ますか? – cambraca

+0

元のファイルのエンコード方法はわかりますか? iso8859-5? –

+0

クロムやIE9では開けません。 NotepadはエンコーディングがANSIであると言いますが、私は知らないのですが... –

答えて

0

あなたは、あなたがUTF8に変換するiconvを使用することができ、元のXMLファイルをエンコードすることであるかを把握する必要が

http://php.net/manual/en/function.utf8-decode.phphttp://php.net/manual/en/function.iconv.php

+0

UTF-8のエンコード後にデータをデコードしてしまったことを忘れてしまったのですが、良い結果のためには?????????私はiconvを試しました - >あなたはそれについてより具体的にすることができますか、多分私は何かを欠いています。 –

+0

作業ファイルを出力するときは、正しく出力する必要がある文字列に対してutf8_decode()を使用してみてください。それを試してみて、私はあなたがしたとは思わない。それがどのように機能するか教えてください。またiconvにショットをつけ、iconv( 'UTF-8'、 'C​​P-1251'、$ string)を試してみてください。またはCP-1251の代わりにISO-8859-5を試してください – Valhallen

+0

はい、試してみましたか??????????????? '' UTF-8 'から 'CP-1251への変換が間違っています。 'は許可されていません'。私はxmlファイルが壊れていると思います... –

0

を見てみてください。

+0

どうすればいいですか? –

+0

ブラウザがファイルを開くことを拒否した場合... Wordを使用してファイルを開き、エンコーディングを伝えることができると思います。http://office.microsoft.com/en-us/outlook-help/choose-text-encoding-あなたが開いて保存するファイル-HA010121249.aspx#BM2 –