问题描述: html
Tomcat默认状况下经过ISO-8859-1编码格式对全部请求的URL进行编码,所以,当某个URL中包含中文路径名称或文件名称时, tomcat
如请求:http://localhost:8080/pro/中文名称.html 编码
Tomcat会没法正确解析和获取该URL地址,而引起HTTP 404错误。 spa
解决办法: code
在tomcat-->conf-->server.xml文件中 ,指定HTTP Connnector的URIEncoding="utf-8" server
如: xml
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
URIEncoding属性具体指定了tomcat用来对URI进行解码的字符编码格式,若是省略该字段,默认状况下tomcat会使用ISO-8859-1编码格式来对URI进行解码。 htm
补充: utf-8
除了用URIEncoding来指定URI的解码格式外,利用<Connector>标签的的useBodyEncodingForURI 属性一样也能够达到一样的效果,io
该字段指定是否能够用请求中的contentType字段中的编码格式来对URI进行编码。这个设置主要是为兼容4.1.x版本的tomcat
由于该版本的tomcat是使用HTTP头中contentType字段指明的编码格式或经过Request.setCharacterEncoding 方法指明的编码格式来对URI进行编码