在web开发过程中经常要传输带中文参数的url,而这些中文又解析成%D5%6E 的字符串。后台得到这些参数需要解析成中文的形式。先提供Tomcat自动解析的方案。
tomcat的server.xml文件
<Connector port="9002" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
/>
修改后的文件
<Connector port="9002" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
/>
可以看出只需要添加两行配置就可以解决解析的问题,后台收到参数后还是中文,不会出现乱码。因为浏览器是使用的utf-8编码,而中文是unicode编码,所以需要转化一下。
在下载文件过程中,给文件流命名中文名,前台在下载时会出现乱码。
此时在后台应该转换编码
fileFileName = “下载.rar”;
fileFileName = new String(fileFileName.getBytes("UTF-8"), "ISO8859-1");
前台就可以正常收到中文字符了