由于Intouch2.2还处于beta阶段,一直也没有更新,部署后出现一些汉字乱码问题,经过调试源码解决了问题,简述如下:
发现汉字乱码的主要是Webmail的汉字名称的附件和Webdisk中的汉字名的文件。Webdisk中上传、和下载文件名中有汉字的文件,文件名都是乱码,而Webmail附件是添加附件、显示附件文件名都没有问题,就是点击下载或保存时文件名是乱码。
经过调试,问题主要出在DownloadService.java和DumpPartService.java中。
DumpPartService.java
if (download) {
response.setHeader("Content-disposition","attachment; filename=/"" + fn + "/"");
} else {
response.setHeader("Content-disposition","inline; filename=/"" + fn + "/"");
}
改为:
String fileName = Utility.updateTRChars(fn);
if (download) {
response.setHeader("Content-disposition","attachment; filename=/"" + java.net.URLEncoder.encode(fileName,"UTF-8") + "/"");
} else {
response.setHeader("Content-disposition","inline; filename=/"" + java.net.URLEncoder.encode(fileName,"UTF-8") + "/"");
}
Webdisk上传下载出现乱码和tomcat的设置也有关系,查看一下Tomcat配置文件Server.xml中关于port的设置部分,即"<port="8080"",在其中加入URIEncoding="UTF-8"这样一个属性。否则通过web上传的文件名可能有乱码。
DownloadService.java
response.setHeader("Content-disposition","attachment; filename=/"" + f.getName() + "/"");
改为
response.setHeader("Content-disposition","attachment; filename=/"" + java.net.URLEncoder.encode(f.getName(),"UTF-8") + "/"");
下面附件中是修改并编译好的两个class文件,覆盖原文件即可。下载【】。