導航:首頁 > 編程語言 > javauri編碼還原中文

javauri編碼還原中文

發布時間:2025-05-21 20:23:58

1. 關於java中 get提交方式的亂碼問題。

這個原因是伺服器導致的,伺服器比如tomcat接收get方法默認使用的是ISO-8859-1編碼,而瀏覽器發送時文字編碼是和頁面編碼保持一致的,如果頁面是使用utf-8 編碼 get方法文字自然是使用utf-8編碼,但接收伺服器沒有設置的情況下用了ISO-8859-1編碼接收,中文自然就成亂碼了,不過由於ISO-8859-1編碼是單位元組編碼所以我們可以使用getBytes("ISO-8859-1"),"utf-8"這樣把文字重新轉換成utf-8 編碼。

第一個發送的文字是utf-8編碼 而tomcat接收後用錯誤的ISO-8859-1編碼了,這樣getBytes("ISO-8859-1")後會重新得到正確的utf-8編碼的位元組數組 ,然後用 new
String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8")重新將位元組編碼成UTF-8編碼的文字這樣文字就正確了。

如果是tomcat的話 server.xml文件
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
後邊的URIEncoding就是設置get方法編碼的如果沒有指定URL接收的編碼類型,自動會用ISO-8859-1編碼

2. 地址欄中有漢字,java如何利用對url編碼求解

地址欄中出現漢字的情況有兩種,一種是漢字出現在URL的路徑部分,一種是漢字出現在URL的傳參的部分,第二種情況的時候必須採用編碼後傳參,接受時解碼的方式完成傳參。js中編碼有escape(),encodeURI(),encodeURIComponent()三個常用的方法,escape()常常用在提交頁面和處理頁面的編碼格式相同的情況下(比如它們都是GB2312),encodeURI()和encodeURIComponent()的用法基本相同,區別在於encodeURIComponent()也對"?"等特殊字元進行編碼。
一開始遇到中文參數的時候,使用encodeURI()進行了一遍編碼,傳過去後,發現解碼出現問題,於是想到可能是編碼方法使用錯誤,於是使用escape()方法,這時發現解碼時拋出isHexDigit異常。藉助網路搜索isHexDigit異常,
發現原來,是escape()方法造成了異常,同時了解了瀏覽器傳遞地址的一些原理,在瀏覽器地址欄里,瀏覽器認為%是個轉義字元,瀏覽器會把%與%之間的編碼,兩位兩位取出後進行解碼,然後再傳遞給處理頁面,
然後由處理頁面進行再次解碼。由此我想到一直使用encodeURI方法是正確的,只是需要使用兩次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是把中文編碼成%xy的格式,
第二次是對%xy中的%進行編碼,%編碼成%25。整個傳參過程大體應該是:提交頁面使用encodeURI(encodeURI("中文"))編碼,把最後的編碼結果%25xy傳遞給處理頁面的過程中,瀏覽器獲取URL地址
(注意openModelDialog方法,瀏覽器獲取不到參數編碼)後解碼成%xy,然後把%xy傳遞給處理頁面,處理頁面使用URLDecoder.decode(request.getParameter("參數名"),"UTF-8");完成解碼。
總結:1、漢字出現在URL路徑部分的時候不需要編碼解碼;

閱讀全文

與javauri編碼還原中文相關的資料

熱點內容
S4能否升級4G網路 瀏覽:225
linux環境下c打開文件失敗 瀏覽:727
如何查詢到自家網路實際帶寬 瀏覽:94
微信算是個什麼app 瀏覽:26
天貓機頂盒支持哪些網路 瀏覽:225
photoshopcc切片工具 瀏覽:701
怎麼恢復誤刪除的文件夾 瀏覽:57
廣東哪個中專可以學游戲編程學校 瀏覽:216
魔獸爭霸顯血工具 瀏覽:598
聯想平板固件升級 瀏覽:31
佳能7d固件版本 瀏覽:532
給我一個戀足的微信號 瀏覽:348
文件夾無法設置隱藏 瀏覽:499
學校網路組建方案 瀏覽:279
word文件模糊變清晰 瀏覽:349
如何用sql批量導入表格數據 瀏覽:755
文件格式轉為word啥意思 瀏覽:932
手機插入u盤後文件丟失怎麼找回 瀏覽:775
筆記本網路怎麼輸入地址 瀏覽:788
ad軟體畫銅皮如何自定義網路名 瀏覽:370

友情鏈接