0

DOMDocument を使用して php 経由で xml ファイルを生成しようとしています。しかし、そこには「奇妙な」文字がいくつかあるため、エンコードエラーが発生します。error on line 2 at column 81: Encoding error.

そこに入れようとし[0.3e](¯``·._.·[name]·._.·´¯)ています。

私はそれを次のように解析しています

header( 'content-type: text/xml' );
$domTree = new DOMDocument( '1.0', 'UTF-8' );

そしてecho $domTree->saveXML();最後に。

出力は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<server><errors/><info><value>0</value><value>25</value><value>30</value><value>[0.3e](

ここで私が間違っていること、または使用する文字セットを教えていただければ幸いです。

デビッド

4

3 に答える 3

0

入力文字列のエンコードを強制し、残りのエンティティを HTML エンティティとしてエスケープする必要がある場合があります。

$enc = mb_detect_encoding($text);
$text = @mb_convert_encoding($text, 'UTF-8',$enc);      
$text = htmlentities($text,ENT_IGNORE,'UTF-8');
于 2013-01-18T14:35:49.710 に答える
0

どこからデータを取得しても、UTF-8 でデータが提供されるわけではありません。Windows-1252 だと思いますが、間違っている可能性があります。

header( 'content-type: text/xml' );
$domTree = new DOMDocument( '1.0', 'Windows-1252' );
于 2013-01-18T15:34:04.210 に答える
-2

xml ノードで CData セクションを使用してください。

于 2013-01-18T14:31:28.353 に答える