昨天上線后發現一個奇怪的問題,就是在IE的地址欄中輸入帶中文的參數,傳到Java端后是亂碼,但是在谷歌等瀏覽器中卻沒有此問題,導致運營人員配置的鏈接地址帶中文,無法正確跳轉我們的SEARCH頁。
最后的解決方案是:
1、將跳轉鏈接放在頁面的節點中,用window.open跳轉。
2、在tomcat的server.xml中設置編碼格式為UTF-8。
3、在啟動start.sh腳本中添加一句:
export LANG=zh_CN.UTF-8
完美解決,無需在JAVA端轉碼了!!!
另外,又發現了最正確的解決方法,就是encodeURI() 函數,只需在帶有中文的鏈接用該函數即可,其他地址無需解碼即可使用。
注意:
encodeURI() 函數和encodeURIComponent()函數的區別:前者只對中文部分轉碼,后者對特殊字符也會轉碼。