日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java url特殊字符处理_简单实例处理url特殊符号处理(2种方法)

發(fā)布時(shí)間:2025/4/16 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java url特殊字符处理_简单实例处理url特殊符号处理(2种方法) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我遇到的問(wèn)題是:url里的參數(shù)內(nèi)容包含&符合,我有兩種方法解決

其一方法是:在頁(yè)面用JS轉(zhuǎn)碼,例子如下(前端處理)

${group.cn })

function test(a,b){

alert("test");

location.href='groupsDetailServlet?groupTypeForDetail=' + a + '&cn=' + encodeURIComponent(b);

}

其二方法是:在后端處理

1>jsp:

${group.cn }

2>java bean: group

String cn;//要顯示的CN

String encodedCN;//當(dāng)參數(shù)傳的CN

public Group(String cn) { this(); this.cn = cn; this.encodedCN =LdapUtil.encodeURLStr(cn); }

public void setCn (String name) { this.cn = name; setEncodedCN(LdapUtil.encodeURLStr(cn)); }

public String getCn () { return cn; }

public String getEncodedCN () { return encodedCN; }

public void setEncodedCN (String cn) { this.encodedCN = cn; }

3>調(diào)用類(lèi)里處理解碼:

String cn = LdapUtil.decodeURLStr(encodedCN);

4>LdapUtil.java

public static String encodeURLStr(String src)

{

return src != null && src.trim().length() > 0 ? src.replaceAll("&", "@") : "";

}

public static String decodeURLStr(String src)

{

return src != null && src.trim().length() > 0 ? src.replaceAll("@", "&") : "";

}

--------------------------------------以下是-----網(wǎng)絡(luò)搜索資料分享---------------------------------------

在使用url進(jìn)行參數(shù)傳遞時(shí),經(jīng)常會(huì)傳遞一些中文名(或含有特殊字符)的參數(shù)或URL地址,在后臺(tái)處理時(shí)會(huì)發(fā)生轉(zhuǎn)換錯(cuò)誤。在有些傳遞頁(yè)面使用GB2312,而在接收頁(yè)面使用UTF8,這樣接收到的參數(shù)就可能會(huì)與原來(lái)發(fā)生不一致。使用服務(wù)器端的 urlEncode函數(shù)編碼的URL,與使用客戶端javascript的encodeURI函數(shù)編碼的URL,結(jié)果就不一樣。javascript對(duì)文字進(jìn)行編碼涉及3 個(gè)函數(shù): escape,encodeURI,encodeURIComponent,相應(yīng) 3 個(gè)解碼函數(shù): unescape,decodeURI,decodeURIComponent

javaScript中的編碼方法:

escape () 方法:采用ISO Latin字符集對(duì)指定的字符串進(jìn)行編碼。 所有的空格符、標(biāo)點(diǎn)符號(hào)、特殊字符以及其他非ASCII字符都將被轉(zhuǎn)化成%xx格式的字符編碼(xx等于該字符在字符集表里面的編碼的16進(jìn)制數(shù)字)。比如,空格符對(duì)應(yīng)的編碼是%20。unescape方法與此相反。不會(huì)被此方法編碼的字符: @ * / +

encodeURI ()方法:把URI字符串采用UTF-8編碼格式轉(zhuǎn)化成escape格式的字符串。 不會(huì)被此方法編碼的字符:! @ # $& * ( ) = : / ; ? + '

encodeURIComponent ()方法:把URI字符串采用UTF-8編碼格式轉(zhuǎn)化成escape格式的字符串。與encodeURI()相比,這個(gè)方法將對(duì)更多的字符進(jìn)行編碼,比如 / 等字符。 所以如果字符串里面包含了URI的幾個(gè)部分的話,不能用這個(gè)方法來(lái)進(jìn)行編碼,否則 / 字符被編碼之后URL將顯示錯(cuò)誤。不會(huì)被此方法編碼的字符:! * ( )

因此,對(duì)于中文字符串來(lái)說(shuō),如果不希望把字符串編碼格式轉(zhuǎn)化成UTF-8格式的(比如原頁(yè)面和目標(biāo)頁(yè)面的charset是一致的時(shí)候),只需要使用escape。如果你的頁(yè)面是GB2312或者其他的編碼,而接受參數(shù)的頁(yè)面是 UTF-8編碼的,就要采用encodeURI或者encodeURIComponent。

另外,encodeURI/encodeURIComponent是在javascript1.5之后引進(jìn)的 ,escape則在javascript1.0版本就有。

1、 傳遞參數(shù)時(shí)需要使用 encodeURIComponent,這樣組合的 url 才不會(huì)被 # 等特殊字符截?cái)唷@?#xff1a;

2、 進(jìn)行 url跳轉(zhuǎn)時(shí)可以整體使用 encodeURI。 例如:Location.href=encodeURI ("http://cang.baidu.com/do/s?word=百度 &ct=21");

3、 js 使用數(shù)據(jù)時(shí)可以使用escape 。 例如:搜藏中history 紀(jì)錄。

4、 escape對(duì) 0-255 以外的unicode 值進(jìn)行編碼時(shí)輸出 %u**** 格式,其它情況下escape , encodeURI , encodeURIComponent編碼結(jié)果相同。

最多使用的應(yīng)為encodeURIComponent ,它是將中文、韓文等特殊字符轉(zhuǎn)換成utf-8 格式的 url 編碼,所以如果給后臺(tái)傳遞參數(shù)需要使用encodeURIComponent 時(shí)需要后臺(tái)解碼對(duì) utf-8 支持(form 中的編碼方式和當(dāng)前頁(yè)面編碼方式相同)

escape不編碼字符有 69 個(gè): *, + , - , . , / , @ , _ , 0-9 , a-z ,A-Z

encodeURI不編碼字符有 82 個(gè): !, # , $ , & , ' , ( , ) , * , + , , , - , . , / , : , ; , = , ? , @ , _ , ~ , 0-9, a-z , A-Z

encodeURIComponent不編碼字符有 71 個(gè): !, ' , ( , ) , * , - , . , _ , ~ , 0-9 , a-z ,A-Z

以下是url中可能用到的特殊字符及在url中的經(jīng)過(guò)編碼后的值:(略)

項(xiàng)目中發(fā)現(xiàn),直接對(duì)url中的參數(shù)部分做encodeURI() 編碼轉(zhuǎn)換,后臺(tái)servlet通過(guò)getParamater()獲取時(shí),不需要轉(zhuǎn)換可以直接獲取到正確的值。 說(shuō)明:參數(shù)沒(méi)有用到中文,框架用的是struts框架

總結(jié)

以上是生活随笔為你收集整理的java url特殊字符处理_简单实例处理url特殊符号处理(2种方法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。