解決AJAX中文亂碼常用的兩種方法
1. 在客戶端進(jìn)行encodeURI(utf-8也可以不做,默認(rèn)),在服務(wù)器端將iso-8859-1編碼轉(zhuǎn)為utf-8編碼
2.在客戶端進(jìn)行兩次encodeURI,在服務(wù)器端進(jìn)行一次轉(zhuǎn)換。
第2種方法能解決問題的原因:
進(jìn)行兩次轉(zhuǎn)換后,在第一次getparameter方法中進(jìn)行第一次解碼,因?yàn)榻獬鰜淼氖怯⑽模ǖ谝淮蝒ncode之后的結(jié)果),所以不會出問題;第二次使用URLDecoder的decode方法,所以能正常解決這個問題。需要注意的是,在decode方法中需要指定解碼格式為"utf-8"。很多中文平臺使用的并不是utf-8(我猜應(yīng)該是gb2312),所以decode的默認(rèn)轉(zhuǎn)換并不一定是utf-8。
之所以在客戶端進(jìn)行兩次編碼而在服務(wù)器只進(jìn)行一次解碼,我猜是Tomcat的緣故。Tomcat為了讓程序員編程方便(get和post用一樣的代碼),所以會自動對post的編碼進(jìn)行解碼,所以在服務(wù)器端就少了一次手寫的解碼語句。之所以還要再進(jìn)行一次編碼解碼,是因?yàn)門omcat自動解碼的操作并不一定是按照我們希望的編碼解的,但英文等字符無論在什么平臺上解出的碼都是一樣的,因此可以讓Tomcat自動解譯出第一次編碼后的結(jié)果,再手動來解譯encodeURI一次的代碼,就可以獲得自己所需的格式。
補(bǔ)充:現(xiàn)在又觀察了一下瀏覽器的行為,覺得不是Tomcat的緣故,因?yàn)樵跒g覽器里的顯示的是中文,而不是編碼后的東西,對于這些個編碼問題現(xiàn)在是一頭霧水,希望知道這方面知識的朋友不吝賜教!
解決IE緩存的問題
加一個時間戳,并且要檢查?
解決代理問題
要將?轉(zhuǎn)為$
示例代碼:
新聞熱點(diǎn)
疑難解答