Ajax响应包括特殊字符

时间:2011-04-26 14:49:16

标签: javascript ajax

我正在尝试获取一个响应xml,其中包含特殊字符。 这在IE中是失败的,但在Mozilla中它工作正常。 请告诉我如何解决这个问题。

以下是代码:

request.setCharacterEncoding("UTF-8");
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write("<xml><valid><![CDATA[2189971_Bright Starts bath time foam ©®!@& toys each]]></valid><productid>123</productid></xml>");

2 个答案:

答案 0 :(得分:0)

尝试在XML本身中添加编码:

response.getWriter().write("<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><valid><![CDATA[2189971_Bright Starts bath time foam ©®!@& toys each]]></valid><productid>123</productid></root>");

答案 1 :(得分:0)

您的XML很可能无效 - 您在XML中指定UTF8编码,但编写代码可能不会输出UTF8。查看浏览器使用某个HTTP观察程序(喜欢Fiddler)接收的内容,以确保响应是正确的UTF8编码(您遇到问题的字符必须编码为高于ASCII范围)。

不确定您使用的是哪种语言/框架,但根据请求设置编码并写入响应看起来很可疑。