ソースファイルがgbkで書かれているのですが、utf8形式に変更するとエラーになります。その理由を教えてください。
//这是出错的gbk编码的文件 header('content-type:application/xml;charset=gbk '); $x = new DOMDocument('1.0', 'gbk'); $a = $x->createElement('a'); $x->appendChild( $a ); $you = $x->createTextNode('你'); $a->appendChild( $you ); echo $x->saveXML();
//这是U8编码的源文件 header('content-type:application/xml;charset=utf-8 '); $x = new DOMDocument('1.0', 'utf-8'); $a = $x->createElement('a'); $x->appendChild( $a ); $you = $x->createTextNode('你'); $a->appendChild( $you ); echo $x->saveXML();
XML の作業文字セットは utf-8 です
作業文字セット U8 によるものだとすると、エンコーディングを指定できるパラメーター 2 の存在にはどのような意味があるのでしょうか?また、エラーレポートのconv errorとは何でしょうか?
XML の作業文字セットは utf-8 です
変換に失敗しました
指定された作業文字セットは一部の Microsoft 製品でのみ有効です (XML は Microsoft によって発明されたため)
php5.3 以降は読み込むことができますutf-8 以外の文字セットを含む XML ドキュメントを取得する
PHP が xml オブジェクト内の文字列を gbk 形式で出力する方法はありますか?
conv エラー 変換に失敗しました
一部の Microsoft 製品でのみ有効な作業文字セットを指定してください (XML は Microsoft によって発明されたため)
php5.3 以降では、非 utf-8 文字セットで XML ドキュメントを読み取ることができます
私が言ったことは正確ではありません
header('content-type:application/xml;charset=gbk');$x = new DOMDocument('1.0', 'gbk');$a = $x->createElement('a');$x->appendChild( $a ); $you = $x->createTextNode(iconv('gbk', 'utf-8', '你'));$a->appendChild( $you );echo $x->saveXML();
conv エラーは、内部 utf-8 文字セットを指定された出力文字セットに変換するときに生成されます
$you = $x->createTextNode('you'); として扱われます。 utf- 8文字を処理すると当然エラーが発生します