2012-02-14 16 views
0

xmlには: <?xml version="1.0" encoding="ISO-8859-15"?> があり、ノードの値の一部を読み込んで保存することになっています。どのエンコーディングを使用するのですか?現時点で私はutf8_encode()を使用していますが、これはまあまあですが、保存時に機能しますが、値を再度読み込む必要があるときには、スカンディック文字 "ÅÄÖ"を使用すると、 "Ã"äliö "xmlから/ phpへのエンコーディング?

phpでxmlに保存したり読み込んだりするために文字列をエンコードするにはどうすればよいですか?ここでの事はスカンジナビア文字で..です

編集:申し訳ありませんが、私は...} {のXMLタグを置くのを忘れ

編集:現時点では私が読んで、変更するDOM XPathを使用していますxmlファイル

答えて

1

エンコードをまったく使用しないでください。

XMLドキュメントの内部エンコーディングはutf-8です。
たとえば、指定されたパーサ、たとえばsimplexmlを使用している限り、ドキュメントをutf-8に再コードし、常にutf-8出力を持ちます。

残りの部分では、このデータとどのようにあなたのページをコードで何をしたいかによって異なります。

+0

nodevalueへの書き込みとxmlの保存にutf_encode()を使用しないと、XMLからすべてをスワイプします。保存する文字列が '<?xml version =" 1.0 "?>' ÅÄÖとしてcharsを持っています... – Heiska

+0

一度に一つのことをしてください。あなたはすでに読書を並べ替えていますか? XMLを作成し、直接作成し、任意のライブラリを使用する2つの方法があります。 HTMLのようにダイレクトメソッドを使用している場合は、ヘッダーに設定したエンコーディングを使用できます。ライブラリライターを使用する場合は、utf-8でエンコードされたデータを提供する必要があります。そのため、コードをコード化する必要があります。 –

+0

'$ xpath-> nodeValue = utf8_encode($ _ POST ['input'])'これは書いても動作しますが、読み込み時に 'echo $ xpath-> nodeValue'しか得られません。 、ÖまたはÄそれは "Ã"äliö "のような何かをエコーする – Heiska

0

使用XMLReaderXMLWriterクラス、あなたがファイルを開くと、入力と出力のエンコーディングを指定します。あなたの場合、文書を読むには:

$xmlReader = new XMLReader(); 
$xmlReader->open('test.xml', 'ISO-8859-15'); 

値は、文書から取得すると自動的にUTF-8に変換されます。

XMLWriterは、UTF-8入力が必要であることを覚えておいてください。