程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 編碼-Java後台代碼中URLdecode解析亂碼

編碼-Java後台代碼中URLdecode解析亂碼

編輯:編程解疑
Java後台代碼中URLdecode解析亂碼

׮%D7%AE%EF%BF%BD%EF%BF%BD%2F015.JPG是什麼格式的編碼,怎麼Java代碼中URLdecode解析亂碼

最佳回答:


java中對字符編碼和解碼提供了兩個類:URLEncoder和URLDecoder,處理這些二進制,使用其加密的結果類似“%CC%DE”這樣的字符串
可以用URLEncoder 類的encode()方法和URLDecoder類的decode()方法結合起來加解密
頁面中:

Js代碼

var url = "modifyDepartment.action?name=" +cname;

url=encodeURI(url);

服務端獲取:

Java代碼

String name=request.getParameter("name");

name = java.NET.URLDecoder.decode(name,"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版本就有。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved