让Tomcat支持中文文件名

时间:2022-09-01 07:26:17

--参考链接:http://blog.chinaunix.net/uid-26284395-id-3044132.html

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

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

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. connectionTimeout="20000"
  3. redirectPort="8443" />

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

  1. <Connector port="8080" protocol="HTTP/1.1"
  2. URIEncoding="utf-8"
  3. connectionTimeout="20000"
  4. redirectPort="8443" />

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

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