1,系统环境变量,jvm运行jar需要依赖环境变量。
-Dfile.encoding=UTF-8,在启动脚本中设定jvm依赖的参数,解析文件使用的编码。
2,URL编码。
1) tomcat使用Connector,接收请求,创建httpRequest和httpResponse等对象。需要指定URL使用utf的编码
用于处理中文
。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
2)新版的tomcat不允许URI中使用中文。
Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
apache-tomcat-7.0.81以及以上版本
,URI中不可以使用中文(配置URIEncoding,是tomcat对请求使用utf8进行解码
)。
apache-tomcat-7.0.57
以及以下的版本,URI中可以使用中文。
3,浏览器编码
1)chrome中,请求地址和参数,均经过utf-8编码(地址栏显示的是解码的数据)。image.png
2)非chrome浏览器,请求地址使用utf-8编码。参数编码跟系统相关。
3)超链接,js超链接访问,请求地址使用utf8,参数使用页面编码。
4)ajax中,非IE浏览器,请求地址使用utf8,参数使用页面编码。IE中,都是用gbk。
网友评论