您的位置:首页 > 编程语言 > Java开发

struts开发中文乱码问题总结

2015-09-17 15:28 519 查看

中文乱码问题一直是程序员最讨厌的问题。我这里分享了几个我在struts框架开发过程中,用JQuery+Ajax传参时的乱码问题和操作数据库时的乱码问题。

Ajax用get方式传参都会出现乱码。

解决办法:建议大家都用post方式请求,也是一个编程的好习惯。
结果返回乱码。在action处理时打印都是正确的,返回Ajax显示出来就乱码了,

解决办法:在处理类执行前都把response设置编码,response.setCharacterEncoding("utf-8");这也是一个编程的好习惯,可以把这段代码写在过滤器里,把所有的请求都过滤一遍就不会出现这种问题了。
最最恼火了一种,struts自动写入参数就乱码了。原因是因为我们把参数写在了url后面,

解决办法:Ajax中添加data:“arg1=参数&arg2=参数2”,把参数写在data中就不会出现乱码问题。
但是呢,有些时候,我们只能在url里面传递参数的情况怎么办。

url传参乱码(struts开发时)

解决办法:在传递参数前,先在js中把参数进行两层编码arg1 = encodeURI(encodeURI(arg1));然后在action处理类中,需要对该参数进行两层解码:arg1=URLDecoder.decode(arg1,"utf-8");这样就能解决struts用url传参乱码问题。
操作数据库时乱码。所有过程都没有问题,action也成功取到了参数的值,但是在操作数据库的时候就乱码了,这是tomcat环境配置的问题

解决办法:在tomcat开发环境-找到conf文件夹-找到server.xml文件,找到“Connector port="8080" “ 这一栏,在末尾添加URIEncoding=“UTF-8”,像这样<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: