最近遇到一个问题:项目在本地windows系统下部署没有问题,但部署到linux系统下的时候就不能够解析了。
后来查了一下资料是编码集问题。
解决tomcat编码集问题有2处。
第一处:也是最常见的,修改server.xml的中端口的编码集为UTF-8,例如:
或者
userBodyEncodingForURI="true"的意思是:根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码。即响应编码得根据服务设置编码一致。
URIEncoding="UTF-8"是对所有GET方式的请求的数据进行统一的重新编码。这里设置的编码集为UTF-8。
如果上诉修改仍没能解决问题,那么很可能是文件解析错误。tomcat的文件解析编码集flie.encoding是跟操作系统有关系的,一般情况下liunx的中文编码集为GBK。
第二种:修改cataina.sh(linux系统)/cataina.bat(windows系统)文件,在开头加上如下语句:
(主要是设置-Dfile.encoding=UTF-8)