struts开发中文乱码问题总结



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

  1. Ajax用get方式传参都会出现乱码。
    解决办法:建议大家都用post方式请求,也是一个编程的好习惯。
  2. 结果返回乱码。在action处理时打印都是正确的,返回Ajax显示出来就乱码了,
    解决办法:在处理类执行前都把response设置编码,response.setCharacterEncoding("utf-8");这也是一个编程的好习惯,可以把这段代码写在过滤器里,把所有的请求都过滤一遍就不会出现这种问题了。
  3. 最最恼火了一种,struts自动写入参数就乱码了。原因是因为我们把参数写在了url后面,
    解决办法:Ajax中添加data:“arg1=参数&arg2=参数2”,把参数写在data中就不会出现乱码问题。
  4. 但是呢,有些时候,我们只能在url里面传递参数的情况怎么办。
    url传参乱码(struts开发时)
    解决办法:在传递参数前,先在js中把参数进行两层编码arg1 = encodeURI(encodeURI(arg1));然后在action处理类中,需要对该参数进行两层解码:arg1=URLDecoder.decode(arg1,"utf-8");这样就能解决struts用url传参乱码问题。
  5. 操作数据库时乱码。所有过程都没有问题,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"/>
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页