解决方案--地址栏传的字符串乱码

情景:http://localhost/fcms/conn/shareToView.htm?title=啊大算哒阿斯蒂芬爱上打发速度啊啥地方&content=Aasf爱上发阿萨德发师傅艾丝凡爱上发师傅啊师傅啊

1. 利用过滤器来对HTTP的请求和响应进行字符编码的限定:

需要先得到request和response对象,利用

ServletActionContext.getRequest().setCharacterEncoding("UTF-8");
ServletActionContext.getResponse().setCharacterEncoding("UTF-8");

2. Tomcat字符编码配置

在tomcat/conf/server.xml文件中,Ctrl+F

<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

3. 最后的手段:

1. String str = new String(xxx.getBytes("GBK") , "UTF-8");

  虽然很不灵活但是我们可以抽取出来,重构一下。并且我觉得这种方法不靠谱,因为浏览器解析的字符编码不一样,可能会导致转码不成功!但是这种情况现在还没遇到过。。。

2. URLEncode+URLDeCode  将内容进行转码和解码是万能的

原文地址:https://www.cnblogs.com/xmaomao/p/3166614.html