tomcat处理中文文件名的访问(乱码)

时间:2023-01-10 18:00:58

解决问题的核心在于修改Tomcat的配置,在Server.xml文件中添加一个名为URIEncoding的属性,它用于对HTTP请求中的get方法传过来的URL进行编码。Tomcat内置的对于get协议中的URL编码是ISO-8859-1,这个字符集不能直接支持中文等双字节的信息,而中文文件的下载链接恰恰是通过get协议进行的。

    打开$tomcat安装目录$/config/server.xml文件,在其中找到如下代码:

<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout
="20000"
redirectPort
="8443" />

 

 

 

    这段代码规定了Tomcat监听HTTP请求的端口号等信息,在这里添加一个属性:URIEncoding,值为UTF-8,即可让Tomcat以UTF-8的编码处理get请求:

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

 

 

 

 

在Web应用程序中 如果调用response.sendRedirect()方法重定向到中文文件名的页面 需要如下的方式调用

response.secdRedirect(java.net.URLEncoder.encode("员工信息.html","UTF-8"));