最近遇到一个问题,在前端加载pdf文件,启动项目后,在本地是没问题的,但是当我将项目打包上传至服务器时,文件打不开了,中文路径全乱码了。
为了解决这个问题,我真是煞费苦心。
在前端不管我怎么转码,encodeURI,结果都是一样,乱码依旧没变。
最终,我得出了结论。
在本地加载的pdf,编码是utf-8,而tomcat以默认的iso8859-1方式对中文解码,结果就导致了乱码
解决办法就是
一、对Tomcat_HOME/conf/server.xml文件进行配置
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
>
二、逆向编码,将iso8859-1转换成GBK
byte buf[] = request.getParameter("name").getBytes("iso8859-1");
String name = new String(buf,"GBK");
三、将中文转成英文路径
由于负责服务的同事早已离职,它的配置文件放在何处我也没找到,所以我只能将路径换成英文的。