首頁 web前端 js教程 簡單實例處理url特殊符號&處理(2種方法)_javascript技巧

簡單實例處理url特殊符號&處理(2種方法)_javascript技巧

May 16, 2016 pm 05:38 PM
url 特殊符號

我遇到的問題是:url裡的參數內容包含&符合,我有兩種方法解決
其一方法是:在頁上用JS轉碼,例子如下(前端處理)

複製程式碼 程式碼如下:

${group.cn })


其二方法是:在後端處理
1>jsp:
複製代碼 程式碼如下:

2>java bean: group
複製程式碼 程式碼如下:


程式碼如下:



程式碼如下:


程式碼如下:
程式碼如下: 程式碼如下:String cn;//要顯示的CN
String encodedCN;//當參數傳的CN
public Group(String cn) { this(); this.cn = cn; this.encodedCN =LdapUtil.encodeURLStrtil.encodeURLStrtil.encodeURLStrtil.encodeURLStrtil.encodeURLStrtil.encodeURLStrtil.encodeURLStrtil.encodeURLStrtil.encodeURLStrtil (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>調用類里處理解碼: 複製程式碼

程式碼如下:


String cn = LdapUtil.decodeURLStr(encodedCN);
>4>LdapUtil.java



複製程式碼 程式碼如下: publicstaticStr​​nect 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("@", "&") : ""; }
--------------------------------------以下是-----網路搜尋資料分享----------------------------------------------------
在使用url進行參數傳遞時,經常會傳遞一些中文名(或含有特殊字元)的參數或URL位址,在後台處理時會發生轉換錯誤。在有些傳遞頁面使用GB2312,而在接收頁面使用UTF8,這樣接收到的參數就可能會與原來發生不一致。使用伺服器端的 urlEncode函數編碼的URL,與使用客戶端javascript的encodeURI函數編碼的URL,結果就不一樣。 javascript對文字進行編碼涉及3 個函數: escape,encodeURI,encodeURIComponent,對應3 個解碼函數: unescape,decodeURI,decodeURIComponent

javaScript中的編碼方法

javaScript中的編碼方法

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、 傳遞參數時需要使用 encodeURIComponent,這樣組合的 url 才不會被 # 等特殊字元截斷。例如:
2、 進行url跳轉時可以整體使用encodeURI。 例如:Location.href=encodeURI ("http://cang.baidu.com/do/s?word=百度 &ct=21");
3、 js 使用資料時可以使用escape 。 例如:搜藏中history 紀錄。
4、 escape對 0-255 以外的unicode 值進行編碼時輸出 %u**** 格式,其它情況下escape , encodeURI , encodeURIComponent編碼結果相同。

最多使用的應為encodeURIComponent ,它是將中文、韓文等特殊字元轉換成utf-8 格式的url 編碼,所以如果給後台傳遞參數需要使用encodeURIComponent 時需要後台解碼對utf-8 支援(form 中的編碼方式和目前頁面編碼方式相同)

escape不編碼字元有69 個: *, , - , . , / , @ , _ , 0-9 , a-z ,A-Z
encodeURI不編碼字元有82 個: !, # , $ , & , ' , ( , ) , * , , , , - , . , / , : , ; , = , ? , @ , _ , ~ , 0-9 , a-z , A-Z
encodeURIComponent不編碼字元有71 個: !, ' , ( , ) , * , - , . , _ , ~ , 0-9 , a-z ,A-Z 可能用到的特殊字元及在url中的經過編碼後的值:(略) 專案中發現,直接對url中的參數部分做encodeURI() 編碼轉換,後台servlet透過getParamater()取得時,不需要轉換可以直接取得到正確的值。 說明:參數沒有用到中文,框架用的是struts框架
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP函數介紹—get_headers(): 取得URL的回應頭訊息 PHP函數介紹—get_headers(): 取得URL的回應頭訊息 Jul 25, 2023 am 09:05 AM

PHP函數介紹—get_headers():取得URL的回應頭資訊概述:在PHP開發中,我們經常需要取得網頁或遠端資源的回應頭資訊。 PHP函數get_headers()能夠方便地取得目標URL的回應頭訊息,並以陣列形式傳回。本文將介紹get_headers()函數的用法,以及提供一些相關的程式碼範例。 get_headers()函數的用法:get_header

為什麼NameResolutionError(self.host, self, e) from e,怎麼解決 為什麼NameResolutionError(self.host, self, e) from e,怎麼解決 Mar 01, 2024 pm 01:20 PM

報錯的原因NameResolutionError(self.host,self,e)frome是由urllib3函式庫中的例外類型,這個錯誤的原因是DNS解析失敗,也就是說,試圖解析的主機名稱或IP位址無法找到。這可能是由於輸入的URL位址不正確,或DNS伺服器暫時無法使用所導致的。如何解決解決此錯誤的方法可能有以下幾種:檢查輸入的URL地址是否正確,確保它是可訪問的確保DNS伺服器可用,您可以嘗試在命令行中使用"ping"命令來測試DNS伺服器是否可用嘗試使用IP位址而不是主機名稱來存取網站如果是在代理

如何輸入底線符號 如何輸入底線符號 Feb 25, 2024 pm 09:42 PM

底線在鍵盤上怎麼打_下劃線符號在電腦鍵盤上是一個特殊的符號,它在編程、文檔編輯和網頁設計等許多領域都被廣泛使用。很多人並不清楚在鍵盤上如何輸入下劃線符號,以下將詳細介紹。在大多數標準鍵盤上,底線符號是位於數字鍵盤的的右下角。需要按下Shift鍵和底下的減號鍵“-”(也稱為破折號)來輸入下劃線符號。即按住Shift鍵並同時按下減號鍵,即可打出底線

html和url的差別是什麼 html和url的差別是什麼 Mar 06, 2024 pm 03:06 PM

區別:1、定義不同,url是是統一資源定位符,而html是超文本標記語言;2、一個html中可以有很多個url,而一個url中只能存在一個html頁面;3、html指的是網頁,而url指的是網站位址。

怎樣透過幾個步驟取得您的 Steam ID? 怎樣透過幾個步驟取得您的 Steam ID? May 08, 2023 pm 11:43 PM

現在許多熱愛遊戲的windows用戶都進入了Steam客戶端,可以搜尋、下載和玩任何好遊戲。但是,許多用戶的個人資料可能具有完全相同的名稱,這使得查找個人資料或甚至將Steam個人資料連結到其他第三方帳戶或加入Steam論壇以共享內容變得困難。為設定檔分配了一個唯一的17位id,它保持不變,用戶無法隨時更改,而用戶名或自訂URL可以更改。無論如何,有些用戶並不知道他們的Steamid,這對於了解這一點非常重要。如果您也不知道如何找到您帳戶的Steamid,請不要驚慌。在這篇文

如何在Java中使用URL編碼和解碼 如何在Java中使用URL編碼和解碼 May 08, 2023 pm 05:46 PM

使用url進行編碼和解碼編碼和解碼的類別java.net.URLDecoder.decode(url,解碼格式)解碼器.解碼方法。轉換成普通字串,URLEncoder.decode(url,編碼格式)將普通字串變成指定格式的字串packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net. URLEncoder

微信暱稱特殊符號怎麼弄 微信暱稱特殊符號怎麼弄 Sep 20, 2023 pm 02:43 PM

微信暱稱特殊符號怎麼弄可以透過系統自帶的符號鍵盤、第三方符號鍵盤應用程式、特殊符號產生器網站或Unicode編碼取得。詳細介紹:1、系統自帶的符號鍵盤,iOS設備按住鍵盤上的符號鍵即可,安卓設備長按鍵盤上的符號鍵,然後選擇想要的符號即可;2、第三方符號鍵盤應用程序,如Emoji Keyboard或Symbol Keyboard等等;3、特殊符號產生器網站等等。

Scrapy優化技巧:如何減少重複URL的爬取,提高效率 Scrapy優化技巧:如何減少重複URL的爬取,提高效率 Jun 22, 2023 pm 01:57 PM

Scrapy是一個功能強大的Python爬蟲框架,可用於從網路上取得大量的資料。但是,在進行Scrapy開發時,經常會遇到重複URL的爬取問題,這會浪費大量的時間和資源,影響效率。本文將介紹一些Scrapy優化技巧,減少重複URL的爬取,提升Scrapy爬蟲的效率。一、使用start_urls和allowed_domains屬性在Scrapy爬蟲中,可

See all articles