我一直在寻找有关XMLWriter()如何对其输出进行编码但无法找到它的详细说明。我想知道如果我想要一个特定的输出编码,输入数据应该是什么编码,例如ISO-8859-1。我应该以相同的格式给它输入数据吗?
例如:
$xw->writeElement('garantie','Garantie à vie'); *edited
$xw->endElement();
我应该对字符串'Garantieàvie'进行任何编码转换,还是XMLWriter()
自动转换?该字符串应该是ISO-8859-1还是UTF-8?
答案 0 :(得分:2)
我应该对字符串'Garantieàvie'进行任何编码转换,还是XMLWriter()会自动转换它?
XMLWriter
接受PHP中的UTF-8字符串输入,它会自动将其重新编码为输出编码(如果需要)。由于XML的默认默认编码已经是UTF-8,因此并不总是需要这种内部重新编码。
字符串应该是ISO-8859-1还是UTF-8?
该字符串应为UTF-8编码。
示例(使用UTF-8编码的字符串; Demo):
<?php
/**
* About PHP XMLwriter() encoding input and output
*
* @link https://stackoverflow.com/a/19046825/367456
* @link https://eval.in/51120
*/
$xmlWriter = new XMLWriter();
$xmlWriter->openMemory();
$xmlWriter->startDocument('1.0', 'US-ASCII');
$xmlWriter->writeElement('garantie', 'Garantie à vie');
$xmlWriter->endDocument();
echo $xmlWriter->flush();
输出:
<?xml version="1.0" encoding="US-ASCII"?>
<garantie>Garantie à vie</garantie>
参见: