用get請求傳中文,經(jīng)常搞到亂碼,這幾天搞搞這個(gè)東西,總結(jié)一下,以方便以后處理這類的問題。 JAVA代碼中的URLEncoder.encode方法和JS的encodeURIComponent功能差不多,它會(huì)將處字母和數(shù)字,以及*字符外的都編碼成%xx形式。 JS的unescape和decodeURI都不能用來解碼JAVA中URLEncoder.encode編碼的字符串。 在JAVA代碼中的URLEncoder.encode的字符串可以在JS中用decodeURIComponent還原成字符串。 在JAVA代碼中可以用URLDecoder.decode(request.getParameter("param"),"UTF-8")來將在JS中用encodeURIComponent的參數(shù)還原成字符串。 ======================================================== 1、decodeURI()定義和用法: decodeURI() 函數(shù)可對(duì) encodeURI() 函數(shù)編碼過的URI 進(jìn)行解碼。 語法:decodeURI(URIstring) 參數(shù) 描述:URIstring 必需。一個(gè)字符串,含有要解碼的 URI 或其他要解碼的文本。 返回值:URIstring 的副本,其中的十六進(jìn)制轉(zhuǎn)義序列將被它們表示的字符替換。 2、encodeURI 方法 將文本字符串編碼為一個(gè)有效的統(tǒng)一資源標(biāo)識(shí)符 (URI)。 encodeURI(URIString) 說明 "/"、";" 和 "?"。請使用 encodeURIComponent 方法對(duì)這些字符進(jìn)行編碼。 ----------------------------------------------------------------------------------------------------------- 3、decodeURIComponent()定義和用法:decodeURIComponent() 函數(shù)可對(duì) encodeURIComponent() 函數(shù)編碼的 URI 進(jìn)行解碼。 語法:decodeURIComponent(URIstring) 參數(shù) 描述:URIstring 必需。一個(gè)字符串,含有編碼 URI 組件或其他要解碼的文本。 返回值:URIstring 的副本,其中的十六進(jìn)制轉(zhuǎn)義序列將被它們表示的字符替換。 4、encodeURIComponent() 方法: 因此,對(duì)于中文字符串來說,如果不希望把字符串編碼格式轉(zhuǎn)化成UTF-8格式的(比如原頁面和目標(biāo)頁面的charset是一致的時(shí)候),只需要使用escape。如果你的頁面是GB2312或者其他的編碼,而接受參數(shù)的頁面是UTF-8編碼的,就要采用encodeURI或者encodeURIComponent。 ======================================================== 示例代碼如下: javascript代碼encode
java代碼decode
|
|