用 pdf.js兼容部分安卓显示PDF在线预览 时,a标签直接链接参数文件不能含中文的解决办法
例子: 项目部署在 Tomcat 上的;
<a href="../generic/web/viewer.html?file=doc/register/要显示的文件.pdf" target="_blank"></a>
此处地址栏中显示没问题,但是 tomcat就会报错,找不到文件,
点击这个链接,tomcat就会报404的错误; 报错内容如下:
解决办法:
我们的页面使用的所有编码都设置了,而且都是UTF-8的编码。
我们看到报错找不到文件的原因是,直接把中文解析成了16位的汉字内码了,所以再去找这个一堆%组成的文件肯定就找不到了。
在tomcat中指定url编码即可。
找到tomcat目录中的 conf 下的 server.xml,然后打开,找到端口的配置的标签位置:
<Connector port="18080" protocol="HTTP/1.1"
connectionTimeout="60000"
redirectPort="8443"/>
然后加上 URIEncoding="UTF-8" 这个配置,重新启动tomcat即可:
<Connector port="18080" protocol="HTTP/1.1"
connectionTimeout="60000"
redirectPort="8443" URIEncoding="UTF-8"/>
Note: 如果项目有 UTF-8之外的其他编码文件,慎用此方法!