我正在返回UTF-8 XML响应,并且一些元素具有用户提供的内容,因此我必须确保它们被正确转义。是否使用htmlspecialchars(..., ENT_COMPAT, 'UTF-8')
足以正确转义XML元素文本?
答案 0 :(得分:1)
我不确定我完全理解...... 你想要xml里面的xml或html里面的xml? 如果是后者,为什么不使用CDATA?
e.g。
<xmlelement>
<![CDATA[<span>John Smith</span>]]>
</xmlelement>
答案 1 :(得分:0)
http://www.w3.org/TR/2008/REC-xml-20081126/
2.2字符 ...
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
因此,这告诉您无法在低区域中存储字符&lt; 0x20没有Tab,CR,LF。另外,xml解析器必须规范换行。它必须将CR LF转换为LF等等。
因此,普通节点和CDATA部分都不允许在XML中传输二进制字符串。如果你想运输它,你必须将它转换为base64或运输是数字列表。