今天在做一个项目中 直接通过地址访问tomcat的webapps目录中的文件,当文件名是中文是,则出现访问异常出现FileNotFoundException,英文则可以
想象是:经过多次调式与分析,最终锁定错误是由connection.getInputStream()产生的 报FileNotFountException。
解决方案是:
1. 在tomcat/conf/server.xml中
<Connector port="8080" maxHttpHeaderSize="8192"
connectionTimeout="20000" disableUploadTimeout="true" />改为
<Connector port="8080" maxHttpHeaderSize="8192" URIEncoding="UTF-8"
connectionTimeout="20000" disableUploadTimeout="true" /> 即加入一个URLencoding=“UTF-8”进去,这是tomcat的编码,默认则‘iso-8859-1’
2. 在下载URL的地址中有中文名称的则需要用URLEncoder.encode(fileName)来编码方可。s