ur傳遞中文參數亂碼處理

來源:互聯網
上載者:User

中文參數在我們的web項目中,傳遞會出現亂碼。這一直是讓人覺得比較煩的問題。我解決問題的基本思路是:

1,在前台對中檔案參數進行編碼。

2,在後台接收參數後,再對中文參數進行解碼。

中文參數編碼處理:encodeURI(encodeURI(這裡是你要傳遞的中文參數));

後台接收中文參數進行解碼: java.net.URLDecoder.decode(你擷取到的中文參數, "UTF-8");

上面的兩個步驟基本就可以解決問題。

---------------------補充

javascript中存在幾種對URL字串進行編碼(的)方法:escape(),encodeURI(),以及encodeURIComponent()。這幾種編碼所起(的)作用各不相同。
escape() 方法:
採用ISO Latin字元集對指定(的)字串進行編碼。所有(的)空格符、標點符號、特殊字元以及其他們非ASCII字元都將被轉化成%xx格式(的)字元編碼(xx等於該字元在字元集表裡面(的)編碼(的)16進位數字)。比如,空格符對應(的)編碼是%20。
不會被此方法編碼(的)字元: @ * / +
encodeURI() 方法:
把URI字串採用UTF-8編碼格式轉化成escape格式(的)字串。
不會被此方法編碼(的)字元:! @ # $& * ( ) = : / ; ? + '
encodeURIComponent() 方法:
把 URI字串採用UTF-8編碼格式轉化成escape格式(的)字串。與encodeURI()相比,這個方法將對更多(的)字元進行編碼,比如 / 等字元。所以如果字串裡麵包含了URI(的)幾個部分(的)話,不能用這個方法來進行編碼,否則 / 字元被編碼之後URL將顯示錯誤。
不會被此方法編碼(的)字元:! * ( ) '
因 此,對於中文字串來說,如果不希望把字串編碼格式轉化成UTF-8格式(的)(比如原頁面和目標頁面(的)charset是一致(的)時候),只需要使用 escape。如果你們(的)頁面是GB2312或者其他們(的)編碼,而接受參數(的)頁面是UTF-8編碼(的),就要採用encodeURI或者 encodeURIComponent。
另外,encodeURI/encodeURIComponent是在javascript1.5之後引進(的),escape則在javascript1.0版本就有。

傳參:用encodeURI("url參數")將url編碼
收參:用decodeURI("接收到(的)值")解碼

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.