ajax POST请求Struts2返回的json数据乱码问题

如果Web用的是UTF-8编码,POST请求应该不会出现乱码,如果是GET请求就要转码。但是这里用了POST也出现了乱码,为什么呢?

后来发现是因为在Struts2中使用了类型为redirectAction的result,这个result请求了另一个Action返回json。由于在result里添加了param,带有中文,而redirectAction请求类型为get,所以中文参数被编码了。直接在前端输出即是乱码了。

解决方法:
因为服务器在处理Get请求的编码为ISO-8859-1,所以要把编码转为UTF-8,代码:

 

另一个方法,你也可以把服务器的编码改为UTF-8,如tomcat的配置文件conf/server.xml中增加URIEncoding=”UTF8″也可。

如果你使用的不是UTF-8而是其他方法,把文中的UTF-8改成你用的编码即可。

引用:

http://bbs.csdn.net/topics/80053555

发表评论