问题描述:
tomcat下,若访问路径中有中文,或访问中文名的文件,则会找不到资源(404错误)。
原因猜测:
仔细看message后,应该是tomcat错误的解析了路径中的中文,导致定向到错误的文件,自然找不到资源。
解决方法:
在/conf/server.xml文件<Connector ports=”8080” ……/>中添加URIEncoding=”UTF-8”和useBodyEncodingForURI=”true”。
然后重启tomcat.
作用是使用UTF-8格式编码url,这样,tomcat就能正确的解析url中的中文,并访问到正确的资源了。
存在的问题:
由于改变了url的编码格式,所以对 依靠url传递参数的GET方法产生影响,需要修改已存在的项目。
ByTheWay:
重启之后,若打开的网页乱码,则多是文件乱码的问题,因为tomcat已经加载到资源,只是文件显示乱码而已。。
因为树莓派是utf-8编码,曾在这里折腾了很长时间,最后才想到404和显示乱码不是一个问题。
java生成的文件是utf-8 without bom,但linux的utf-8是utf-8 with bom,坑。