2011-04-26 56 views
0

我想获得具有特殊字符在它的响应XML。 这是在IE浏览器失败,但在Mozilla它工作正常。 请让我知道如何解决这个问题。Ajax响应包括特殊字符

下面的代码:

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 ©®[email protected]& toys each]]></valid><productid>123</productid></xml>"); 
+0

看起来像Java代码,JavaScript不... – 2011-04-26 15:23:38

回答

0

尝试增加在XML本身的编码:

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

甚至没有编码XML后,我不能够实现与:(©®特殊字符 – hari 2011-04-26 15:34:15

+0

而且我面临的问题 – hari 2011-04-26 15:38:57

0

最有可能你的XML是无效的 - 您指定UTF8编码的XML,但可能编写代码不输出UTF8。查看浏览器使用某个HTTP观察器(如Fiddler)接收的内容以确保响应正确地使用UTF8编码(您遇到问题的字符必须进行编码,因为它们在ASCII范围之上)。

不知道用什么语言/框架您使用,但要求设置编码和写入响应看起来很可疑。

+0

我怎样写UTF-8编码的响应XML .. – hari 2011-04-28 15:16:10

+0

我不知道你使用的是不觉得熟悉的框架,但如果失败,GOOLGE为您尝试兵http://www.bing.com/search?q=request.setCharacterEncoding带来下面的链接,可能是您感兴趣的http://stackoverflow.com/questions/3278900/httpservletrequest-setcharacterencoding-seems-to-do-nothing – 2011-04-28 16:23:48