存档

文章标签 ‘code’

Ajax返回中文乱码的问题

2007年5月17日 robertbao 3 条评论

用taconite做Ajax,以前都是尽量返回数字或英文,这样一方面避免中文问题,一方面减小传输量,在页面再用一个map通过js来匹配,显示出相应的中文。

这次情况有些特殊,“摘要”栏的内容是其他交易输入的,因此要做到动态匹配,本身页面上的map还要到后台去取一遍,这样就太浪费了,还是解决一下中文问题,直接传回来中文的内容比较好。

问题其实就是返回来的responseText或responseXML的值中含有中文就变乱码,taconite的js又不认这个,就报错。

这个问题要说解决起来也很简单,原因是Ajax在接收responseText或responseXML的值的时候是按照UTF-8来解码的,如果服务器端发送的数据不是UTF-8的格式,那么接收的值就会是乱码,而Java后台这边是以Unicode来编码的,问题就出现了。

解决方法就是在服务器端设置response的编码格式:

response.setCharacterEncoding("UTF-8");

这样就能正常显示中文了,上图中的"科目号"里就包括了回显的中文。

另外在测试环境试了一下,在WebLogic 8.1 SP5上那样设还不行,一定要设成:

response.setContentType("text/xml;charset=UTF-8");

分类: WORK 标签: , ,