1. 程式人生 > >JAVA中url的特殊字元處理及url轉碼解碼

JAVA中url的特殊字元處理及url轉碼解碼

在url中 , 只能使用url合法的字元 . 如果使用了非法字元來訪問某資源(如:+#等) , 就會導致資源訪問異常或失敗 . 同時原生url中也是不支援中文的 , 以百度為例 , 當你搜索了中文關鍵詞時 , 可以在url位址列中明顯的看出來中文被"編碼轉換了" . 本章暫時先不討論特殊程式碼及中文字元的原因 , 先講一下如何解決url中的特殊字元問題;

package com;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

/**
 * JAVA中url特殊字元的處理
 */
public class XTest {

	public static void main(String[] args) throws UnsupportedEncodingException {
		String url = "https://www.xtest.com/?key=";
		String wd = "智慧+學習";
		String encoderUrl = URLEncoder.encode(wd, "UTF-8");
		System.out.println(url + encoderUrl);
		String decoderUrl = URLDecoder.decode(encoderUrl, "UTF-8");
		System.out.println(url + decoderUrl);
	}
}

在控制檯可看到輸出如下 : 
https://www.xtest.com/?key=%E6%99%BA%E8%83%BD%2B%E5%AD%A6%E4%B9%A0
https://www.xtest.com/?key=智慧+學習

應用場景 : url中包含中文及特殊字元 , 另提醒一個專案中被忽視的地方 , 本人在此就深得教訓;

url中需要巢狀另一個url時 , 如需要向第三方傳送get請求 , 然後需要提供一個回撥地址 , 這是就是把url作為引數值放入url中 , 這個url必然是合法的url , 但仍然不能直接拼接到url中, 會導致瀏覽器無法解析 . 所以需要進行url編碼之後再進行拼接.

關於URL及其特殊字元的詳細資訊 , 可以參考這個頁面 : 

相關推薦

JAVAurl特殊字元處理url解碼

在url中 , 只能使用url合法的字元 . 如果使用了非法字元來訪問某資源(如:+#等) , 就會導致資源訪問異常或失敗 . 同時原生url中也是不支援中文的 , 以百度為例 , 當你搜索了中文關鍵詞時 , 可以在url位址列中明顯的看出來中文被"編碼轉換了" . 本章暫

url包含特殊字元處理

encodeURIComponent(URIstring) :假定其引數是URI一部分(比如協議、主機名、路徑或查詢字串),因此 encodeURIComponent() 函式將轉義用於分隔 URI 各個部分的標點符號(? # 等)。

iOS URL特殊字元處理

一般來說我們呼叫webVIew的時候,只要給webVIew傳一個url,在網頁裡面就可以顯示網頁資訊。但是當我們傳的url比較麻煩或者帶文字元,帶引數的時候我們需要對特殊字元進行轉義。我們還可以用遍歷,正則等來把特殊字元給替換掉!!  有兩種方法:  一,使用NSS

url特殊字元轉義解決方法(附有例子)

做頁面開發的時候有時候,會使用Javascript的escape(),encodeURIComponent(),encodeURI ()這三個函式進行URL編碼,防止特殊字元接收不到。 解決方法:就是把客服端中帶有特殊字元的引數替換成另一些代替的引數,如下所示

url特殊字元轉義解決方法

URL特殊字元需轉義    1、空格換成加號(+)    2、正斜槓(/)分隔目錄和子目錄    3、問號(?)分隔URL和查詢    4、百分號(%)制定特殊字元    5、#號指定書籤    6、&號分隔引數   轉義字元的原因:  如果你的表單使用get方法提交,並且提交的引數中有“&a

Java特殊字元的轉義問題

1 頁面顯示時,後臺準備資料要轉義的字元: >  <  "  '  & public static String html(String key) {if (null != key) {/** 特殊字元處理:* > &gt;   <

JAVA清除特殊字元

正則表示式用於字串處理、表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。  匹配中文字元的正則表示式: [\u4e00-\u9fa5]  評註:匹配中文還真是個頭疼的事,有了這個表示式就好辦了  匹配雙位元組字元(包括漢字在內):[^\x00-\xff]  評註:可以用來計算字串的長度(

Java JSON格式特殊字元處理

1.傳遞JSON格式特殊字元儲存後,查詢導致前臺無法展示    特殊字元:雙引號(")  單引號(') 等等 public static String changeHtm(String changeHtmlValue) { if(null == changeHtmlV

java處理url特殊字元%等

java處理url中的特殊字元(如&,%...) URL(Uniform Resoure Locator,統一資源定位器)是Internet中對資源進行統一定位和管理的標誌。一個完整的URL包括如下內容:1.       &

JAVA如何處理URL特殊字元

方法1: String str="http://www.baidu.com/api/?action=s2s_install&a={appsunion}&b=3&c=30029

javascript處理url特殊字元的情況如“{、#、}...”

JavaScript中有三個可以對字串編碼的函式, 分別是: escape(),encodeURI(),encodeURIComponent(), 相應3個解碼函式: unescape(),decodeURI(),decodeURIComponent() 。 下面

JS 和 Java URL特殊字元編碼方式

 JavaScript   1.  編碼 escape(String)     其中某些字元被替換成了十六進位制的轉義序列。    解碼 unescape(String)     該函式的工作原理是這樣的:通過找到形式為 %xx 和 %uxxxx 的字元序列(x

【已解決】GET方法的引數處理URL特殊字元&%等

最近突然被分到後端做Web工具(也是直到最近才知道,在我們團隊做高併發、大資料處理的才是後端,我們做產品、web開發的只能算前端,暈。。。) 有個需求是 根據url及時間範圍查詢抓取到的不同版本的網頁快照,而綜合考慮另外一個需求後,查詢用了GET方法。 但是問題來了,當輸入

url特殊字元問題

在 使用url進行引數傳遞時,經常會傳遞一些中文名(或含有特殊字元)的引數或URL地址,在後臺處理時會發生轉換錯誤。在有些傳遞頁面使用GB2312, 而在接收頁面使用UTF8,這樣接收到的引數就可能會與原來發生不一致。使用伺服器端的urlEncode函式編碼的URL,與使用客

iOS url出現特殊字元處理 -- stringByAddingPercentEncodingWithAllowedCharacters

stringByAddingPercentEscapesUsingEncoding(只對 `#%^{}[]|\"<> 加空格共14個字元編碼,不包括”&?”等符號), ios9將淘汰,建議用 stringByAddingPercentEncodingWithAllowedChara

URL特殊字元意思

在URL中,我們會遇到很多的特殊字元,不懂的新手可能不懂得是什麼意思,為此寫在此,希望對不懂的人有所幫助! 符號                   意思        

postman URL特殊字元傳參

URL出現了有+,空格,/,?,%,#,&,=等特殊符號的時候,可能在伺服器端無法獲得正確的引數值,此時需要對字元進行轉譯。 字元 - URL編碼值 空格 - %20 "      - %22 #     - %23 %    - %25 &    - %

URL傳參特殊字元處理

十六進位制值1. + URL 中+號表示空格 %2B2. 空格 URL中的空格可以用+號或者編碼 %203. / 分隔目錄和子目錄 %2F4. ? 分隔實際的 URL 和引數 %3F5. % 指定特殊字元 %256. # 表示書籤 %237. & URL 中指定的引數

URL特殊字元問題escape,encodeURI,encodeURIComponent

在使用url進行引數傳遞時,經常會傳遞一些中文名(或含有特殊字元)的引數或URL地址,在後臺處理時會發生轉換錯誤。在有些傳遞頁面使用GB2312,而在接收頁面使用UTF8,這樣接收到的引數就可能會與原來發生不一致。使用伺服器端的urlEncode函式編碼的URL,與使用客戶端javascript的e

android 網路請求url特殊字元解決方法

經常在get網路請求中有特殊字元,系統編碼 自動轉譯這些特殊字元有些字元在URL中具有特殊含義,基本編碼規則如下:特殊含義 十六進位制值1.+ 表示空格(在 URL 中不能使用空格) %202./ 分隔目錄和子目錄 %2F3.? 分隔實際的 URL 和引數 %3F4.% 指定