由於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文件,覆蓋原文件即可。下載【】。