1. 程式人生 > >IE、FireFox、Chrome瀏覽器中關於URL傳參中文亂碼,解決相容性問題!

IE、FireFox、Chrome瀏覽器中關於URL傳參中文亂碼,解決相容性問題!

前臺用url傳值中文,後臺用request.getParameter接收引數。在Firefox,Chrome等瀏覽器中沒有問題。但用IE瀏覽器就又會出現引數中文亂碼現象。        

IE、 Firefox、Chrome瀏覽器對URL的處理各不相同,瀏覽器在傳輸URl時得對URL進行編碼,IE預設是以UTF-8來傳輸 的,Firefox肯定不是以UTF-8來編碼,有可能是以ISO-8859-1來編碼的,而Chrome好像是採用的GBK來編碼。        

如果不對中文引數進行處理,那麼中文字元經各個瀏覽器以自己的編碼方式傳輸到伺服器後就出現了各種編碼方式,而伺服器卻只能以一種編碼方式來對接收到的URL進行解碼。這樣的話和伺服器使用的編碼方式一樣的瀏覽器在使用帶中文的URl時不會出現問題,其他的瀏覽器則會出現問題。

 解決方法:         我們可以在引數傳遞之前,我們自己先進行編碼,在獲取引數時,我們再進行解碼。這樣就可以得到我們想要的中文引數了,而且很好的處理了不同瀏覽器中相容性問題! 具體例項: JSP頁: var newUrl = "checkLogin/lessonClassList?userName=張三"; newUrl = encodeURI(newUrl);//編碼 $("#dg").datagrid("options").url=newUrl; $("#dg").datagrid("reload"); JAVA後臺: String name = request.getParameter("userName"); String u_name = java.net.URLDecoder.decode(name, "UTF-8");// 解碼 u_name = new String(u_name.getBytes("iso-8859-1"), "utf-8"); 這樣我們得到的u_name就是正常的中文引數了,很好的處理了在不同瀏覽器的相容性!

--------------------- 本文來自 清風幸雅 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/qq_31484941/article/details/78027542?utm_source=copy