URL上中文傳參亂碼解決方案

2022-08-05 16:21:17 字數 810 閱讀 2281

一開始使用encoder(string str)進行編碼和decoder(string str)進行解碼,結果依然發現頭痛的亂碼。後來再使用encoder(string str,"utf-8")進行編碼和decoder(string str,"utf-8")進行解碼。亂碼問題才得以解決。

為了測試encoder和decoder(我指後者帶2個引數的)可用性,我把tomcat的uriencoding="utf-8"給去掉。結果發現,encoder和decoder的帶1個引數的和帶2個引數的方法都沒用,都是亂碼......  不明白中.....

為了在測試編碼問題上得到個很穩定的解決方案。我又試著使用new string(byte ,str)進行解碼編碼,結果杯具的發現。連這個也不好使了,我發誓,我曾經用這個解決過url編碼問題,這次為什麼又不行??

我還記得,為了解決亂碼的問題,使用了request.setcharacterencoding("utf-8")2次才能正常獲取中文,那個汗啊。

總之,如果在url上要傳遞中文的話,使用如下方法包你滿意:

第一步:在tomcat下的server.xml檔案中新增uriencoding="utf-8";

第二步:在傳遞中文前使用urlencoder.encoder(string str,string charset)方法編碼。在接收方使用urldecoder.decoder(string str,string charset)方法進行解碼。

注:以上2步缺一不可哦。^o^

另外。專案中傳值也容易出現亂碼,不過出現亂碼問題無非就是編碼不一致導致的,所以,力求將專案中所有檔案都設定統一編碼。檔案屬性的編碼和檔案中內容的編碼都要設定哦。