用 pdf.js兼容部分安卓显示PDF在线预览 时,a标签直接链接参数文件不能含中文的解决办法

时间:2023-03-09 00:23:46
用 pdf.js兼容部分安卓显示PDF在线预览 时,a标签直接链接参数文件不能含中文的解决办法

例子: 项目部署在 Tomcat 上的;

  <a href="../generic/web/viewer.html?file=doc/register/要显示的文件.pdf" target="_blank"></a>
  此处地址栏中显示没问题,但是 tomcat就会报错,找不到文件,

 

点击这个链接,tomcat就会报404的错误; 报错内容如下:

  用 pdf.js兼容部分安卓显示PDF在线预览 时,a标签直接链接参数文件不能含中文的解决办法

 解决办法:

  我们的页面使用的所有编码都设置了,而且都是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之外的其他编码文件,慎用此方法!