这个让我困惑了好几天。我遇到了字符编码问题,我花了很多时间研究和阅读Stack Overflow问题,我还没有找到解决方案。
所以我有一个XML文件,在该文件中有一组与此类似的标记:
<item name="purchase" date="November 12 2014 02:27:48">
<airline>Aero Test Ltd</airline>
<aircraft>Boeing 747-400</aircraft>
<engine>Rolls-Royce RB211-524H2-T</engine>
<config>5 25 40 560</config>
<value>261430000</value>
<name>None</name>
</item>
在网页中,用户可以更改飞机的名称(<name>
标签)。该名称通过XMLHttpRequest发送到我的PHP页面,该页面应创建一组新的标签,如上所述,并将名称记录在mySQL数据库中。
它与普通的英文字母文本一起正常工作。当我尝试使用名称“Corvina Panameña
”时,我遇到了ñ
的一些问题。
它将这组标签添加到我的XML文档中(就像它应该的那样):
<item name="renaming" date="January 03 2015 04:34:38">
<airline>Aero Test Ltd</airline>
<aircraft>Boeing 747-400</aircraft>
<engine>Rolls-Royce RB211-524H2-T</engine>
<config>5 25 40 560</config>
<value>227852883</value>
<name>Corvina Panameña</name>
</item>
DOMDocument将ñ
编码为ñ
,根据我的研究,它应该做什么。当我用chrome打开文件时,它会显示字符。
我有3个其他网页,其中2个使用来自mySQL数据库的数据中的数据。其中一个mySQL数据页面显示字符,然后显示问题:另一个显示此字符组合:ñ
。这两个页面都具有HTML5 Doctype,并且没有在<meta>
标记中定义的字符集。
第3个网页使用XML数据。奇怪的是,它显示与第二个mySQL页面相同的字符组合:ñ
。该页面使用HTML5 Doctype,并且没有在<meta>
标记中定义的字符集。
这个奇怪问题的解决方案是什么?
问题是否与此类似: http://www.glenscott.co.uk/blog/html5-character-encodings-and-domdocument-loadhtml-and-loadhtmlfile/
这是我添加标记组的DOMDocument过程:http://codepad.org/dHdiY5wG
读取数据的DOMDocument程序:http://codepad.org/ATpkZq4H
完整XML文件:http://codepad.org/XnN9ahuc
- 编辑 -
ini_set("default_encoding", "UTF-8")
和htmlentities
没有帮助。
-Edit 2 -
对数据使用utf_encode()
也无济于事。
-Edit 3 -
似乎XMLHttpRequest发送的帖子数据是问题,而不是XML。
发送此数据:Corvina Panameña
这是收到的:Corvina Panameña
答案 0 :(得分:0)
尝试使用$xml = new DomDocument('1.0', 'UTF-8');
为xml文件设置UTF-8字符集编码,如果不够,请在将utf8_encode
添加到xml之前使用名称字符串{{1}}文档。