【发布时间】:2011-10-28 14:44:29
【问题描述】:
目前,我有 Javascript 生成 XML,其编码设置为 UTF-8,我们遇到了一种情况,即我们偶尔会在 XML 中出现一些国际字符。例如:
<?xml version="1.0" encoding="UTF-8"?>
<example>
<comments><![CDATA[Hola. Mi nombre es Pat. ¿Cómo puedo ayudarle?]]></comments>
</example>
这样保留国际字符会在浏览器中打开时出现编码错误。将 XML 编码更改为 ISO 标准可以解决问题,但我们担心如果编码不同,XML 的接收者将无法正确读取它。目前我们的解决方案是像这样逃避这些字符:
<?xml version="1.0" encoding="UTF-8"?>
<example>
<comments><![CDATA[Hola. Mi nombre es Pat. ¿Cómo puedo ayudarle?]]></comments>
</example>
我的问题是,这是逃避这些字符的正确方法吗?
【问题讨论】:
-
我想说问题不在于 XML;这与您使用编辑器或浏览器(或两者)的方式有关。
-
为什么不将 CDATA 编码为 UTF-8?这将是“正确”的解决方案,恕我直言。
-
哪个浏览器在您的第一个示例中出现错误?恕我直言,它应该是正确的。否则,头部中的 XML 编码规范将没有任何意义。
-
@Robert 所有这些,chrome、safari 和 firefox(IE 只是忽略了这一切)。
-
@ckruse 我们确实将该部分包裹在 CDATA 标记中,有没有办法直接在 CDATA 元素上指定编码?
标签: javascript xml utf-8