問題描述: 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進行編碼