最近在弄一个项目时候,由于url中存在中文路径。
eg:
[color=red][size=medium]
http://127.0.0.1:8080/DocumentOptimization/docs/10.42/测试/10.htm
[/size][/color]
经过浏览器解析后变为:
[color=red][size=medium]
http://127.0.0.1:8080/DocumentOptimization/docs/10.42/%E6%B5%8B%E8%AF%95%E6%96%87%E4%BB%B6/10.htm
[/size][/color]
在服务器端无法正确的解析,就报404错误。
在google下面一种通用的解决方法:
打开config/server.xml文件,如果没有修改过这个文件,应该可以在其中找到如下代码:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
这段代码规定了Tomcat监听HTTP请求的端口号等信息,可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat不再以ISO-8859-1的编码处理get请求。更改后的代码如下所示(红色部分为新添加的代码):
<Connector port="8080"
[color=red]URIEncoding="utf-8"[/color]
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
暂时可以解决问题
eg:
[color=red][size=medium]
http://127.0.0.1:8080/DocumentOptimization/docs/10.42/测试/10.htm
[/size][/color]
经过浏览器解析后变为:
[color=red][size=medium]
http://127.0.0.1:8080/DocumentOptimization/docs/10.42/%E6%B5%8B%E8%AF%95%E6%96%87%E4%BB%B6/10.htm
[/size][/color]
在服务器端无法正确的解析,就报404错误。
在google下面一种通用的解决方法:
打开config/server.xml文件,如果没有修改过这个文件,应该可以在其中找到如下代码:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
这段代码规定了Tomcat监听HTTP请求的端口号等信息,可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat不再以ISO-8859-1的编码处理get请求。更改后的代码如下所示(红色部分为新添加的代码):
<Connector port="8080"
[color=red]URIEncoding="utf-8"[/color]
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
暂时可以解决问题