當前位置:首頁 » 編程語言 » javaurl編碼

javaurl編碼

發布時間: 2024-12-07 03:48:53

㈠ 用java獲取URL路徑時出現非法字元

經常會在瀏覽器的地址欄里看到這樣的字元串%E6%96%87%E6%A1%A3
這就是被編碼後的字元串,下面就討論一下java 的url編碼與解碼問題

java.net.URLDecoder.decode(String s,String enc);
將application/x-www-form-urlencoded字元串轉換成普通字元串。

java.net.URLEncoder.decode(String s,String enc);
將普通字元串轉換成application/x-www-form-urlencoded字元串

代碼示例:

import java.net.URLDecoder;

import java.net.URLEncoder;

public class URLDecoderTest {

public static void main(String[] args) throws Exception {
//將application/x-www-form-urlencoded字元串

//轉換成普通字元串

//必須強調的是編碼方式必須正確,如的是gb2312,而google的是UTF-8

String keyWord = URLDecoder.decode("%E6%96%87%E6%A1%A3", "gb2312");
System.out.println(keyWord);
//將普通字元串轉換成

//application/x-www-form-urlencoded字元串

//必須強調的是編碼方式必須正確,如的是gb2312,而google的是UTF-8

String urlStr = URLEncoder.encode("文檔", "gb2312");

System.out.println(urlStr);
}
}

㈡ java中url後面加中文參數urlencoder.encode亂碼怎麼辦

你這個問題真心不好辦,建議你把頁面編碼改為GBK編碼把。像樓上說的這些方法看似行得通,原理就是把utf-8轉為gbk然後再轉回utf-8,但那樣是不能解決問題的,試圖通過String newStr = new String(str.getBytes("gbk","utf-8"));辦不到的,結果是中文字元為奇數會出現最後一個字亂碼。我以前也曾碰到這個情況,最後還是把頁面統一編碼解決。
-

㈢ 如何用Java實現URLEncode

用Java實現URLEncode的方法是引入java.net.URLEncoder包。
java.net.URLDecoder.decode(String s,String enc);
將application/x-www-form-urlencoded字元串轉換成普通字元串。

java.net.URLEncoder.decode(String s,String enc);
將普通字元串轉換成application/x-www-form-urlencoded字元串

URLEncoder類包含將字元串轉換為application/x-www-form-urlencoded MIME 格式的靜態方法。
web 設計者面臨的眾多難題之一便是怎樣處理不同操作系統間的差異性。這些差異性能引起URL方面的問題:例如,一些操作系統允許文件名中含有空格符,有些又不允許。大多數操作系統不會認為文件名中含有符號「#」會有什麼特殊含義;但是在一個URL中,符號「#」表示該文件名已經結束,後面會緊跟一個 fragment(部分)標識符。其他的特殊字元,非字母數字字元集,它們在URL或另一個操作系統上都有其特殊的含義,表述著相似的問題。為了解決這些問題,我們在URL中使用的字元就必須是一個ASCII字元集的固定字集中的元素,具體如下:

1.大寫字母A-Z
2.小寫字母a-z
3.數字 0-9
4.標點符 - _ . ! ~ * ' (和 ,)

諸如字元: / & ? @ # ; $ + = 和 %也可以被使用,但是它們各有其特殊的用途,如果一個文件名包括了這些字元( / & ? @ # ; $ + = %),這些字元和所有其他字元就應該被編碼。

編碼過程非常簡單,任何字元只要不是ASCII碼數字,字母,或者前面提到的標點符,它們都將被轉換成位元組形式,每個位元組都寫成這種形式:一個「%」後面跟著兩位16進制的數值。空格是一個特殊情況,因為它們太平常了。它除了被編碼成「%20」以外,還能編碼為一個「+」。加號(+)本身被編碼為%2B。當/ # = & 和?作為名字的一部分來使用時,而不是作為URL部分之間的分隔符來使用時,它們都應該被編碼。

WARNING這種策略在存在大量字元集的異構環境中效果不甚理想。例如:在U.S. Windows 系統中, é 被編碼為 %E9. 在 U.S. Mac中被編碼為%8E。這種不確定性的存在是現存的URI的一個明顯的不足。所以在將來URI的規范當中應該通過國際資源標識符(IRIs)進行改善。

㈣ java 接收url中參數帶 % %傳過來的值

%是URL中的轉義符,比如 %20 表示空格,如果你要表達一個%本身,需要使用 %25表示。
js中可以使用 escape() 來編碼。

㈤ 什麼是urlencode編碼

urlencode編碼:就是將字元串以URL編碼,一種編碼方式,主要為了解決url中中文亂碼問題。

例如:

String mytext = java.net.URLEncoder.encode("中國", "utf-8"); //urlencode編碼
String mytext2 = java.net.URLDecoder.decode(mytext, "utf-8"); //urlencode解碼

這兩條語句在同一個頁面中的話,得到的結果是:
mytext: %E4%B8%AD%E5%9B%BD
mytex2: 中國

熱點內容
c語言二維數組的輸出 發布:2025-03-14 11:58:10 瀏覽:25
安卓腳本自動運行 發布:2025-03-14 11:49:35 瀏覽:354
yii頁面緩存 發布:2025-03-14 11:45:51 瀏覽:798
c語言演算法書 發布:2025-03-14 11:45:26 瀏覽:264
安卓動漫插件在哪裡 發布:2025-03-14 11:41:11 瀏覽:660
linux復制系統文件到 發布:2025-03-14 11:29:45 瀏覽:40
腰2椎體壓縮性骨折多久能幹活 發布:2025-03-14 11:29:34 瀏覽:168
腳本挖圖全自動 發布:2025-03-14 11:28:51 瀏覽:77
redis緩存有效期 發布:2025-03-14 11:28:45 瀏覽:739
Windows搭建ngrok伺服器 發布:2025-03-14 11:28:44 瀏覽:705