Tomcat服务器中文路径名解析错误的解决方式

2017年11月25日 99 字 教程整理


开发文件下载功能或迁移项目到一个新的服务器时,经常会遇到文件的路径中有中文时,路径解析错误的情况。这是因为Tomcat默认对于get协议中的URL编码是ISO-8859-1,这个字符集不能直接支持中文等双字节的信息,而中文文件的下载链接恰恰是通过get协议进行的。这时浏览器会自动对中文进行编码,导致服务器定位不到正确的位置。

解决问题的核心在于修改Tomcat的配置,具体方案如下:

在Server.xml文件中添加一个名为URIEncoding的属性,它用于对HTTP请求中的get方法传过来的URL进行编码,修改它,即可让Tomcat以UTF-8的编码处理get请求。
配置server.xml中的代码如下:

  <Connector port="8080" protocol="HTTP/1.1" URIEncoding="utf-8" connectionTimeout="20000" redirectPort="8443" /> 

完成之后,重启Tomcat服务器即可生效。