关于PHP XMLwriter()编码输入和输出
我一直在到处寻找关于XMLWriter()如何编码其输出的详细解释,但找不到它。我想知道如果我想要一个特定的输出编码,输入数据应该采用什么编码,例如ISO-8859-1。我应该以相同的格式给它输入数据吗 例如:关于PHP XMLwriter()编码输入和输出,php,xml,character-encoding,xmlwriter,Php,Xml,Character Encoding,Xmlwriter,我一直在到处寻找关于XMLWriter()如何编码其输出的详细解释,但找不到它。我想知道如果我想要一个特定的输出编码,输入数据应该采用什么编码,例如ISO-8859-1。我应该以相同的格式给它输入数据吗 例如: $xw->writeElement('garantie','Garantie à vie'); *edited $xw->endElement(); 我应该对字符串“Garantieávie”进行任何编码转换还是XMLWriter()自动转换?字符串应该是ISO-8859-
$xw->writeElement('garantie','Garantie à vie'); *edited
$xw->endElement();
我应该对字符串“Garantieávie”进行任何编码转换还是XMLWriter()
自动转换?字符串应该是ISO-8859-1还是UTF-8
我应该对字符串“Garantieávie”进行任何编码转换,还是XMLWriter()会自动进行转换
XMLWriter
接受PHP中的UTF-8字符串输入,它将自动将其重新编码为输出编码(如果需要)。并不总是需要这种内部重新编码,因为XML的默认编码已经是UTF-8了
字符串应该是ISO-8859-1还是UTF-8
该字符串应为UTF-8编码
示例(使用UTF-8编码字符串;):
加兰蒂à;争夺
另见:
- 它回答了“XMLWriter使用writeAttribute()方法导出php XML的问题”。它还解释了如何更改输出文档的编码
- 这个问题很好地涵盖了PHP中的有效元素名(UTF-8编码和其他)主题
'ISO-8859-1'
的第二个参数可以是大写或小写(通常使用大写)。可以使用的字符编码名称取决于您的PHP配置,ISO-8859-1
不应该造成任何问题。虽然评论说:我链接的演示站点不支持ISO-8859-1-不要问我为什么:D以前从未经历过,但正如所写,这取决于PHP配置。
<?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>