中文轉(zhuǎn)url編碼 為什么url中的空格要做轉(zhuǎn)換呢?
為什么url中的空格要做轉(zhuǎn)換呢?這是URL編碼的表示。對(duì)于每個(gè)字節(jié),它可以由兩個(gè)十六進(jìn)制值%表示,后跟ASCII碼:根據(jù)URL編碼,URL中的空格是20,因此URL中的空格是RL。實(shí)際上,轉(zhuǎn)義只是為了
為什么url中的空格要做轉(zhuǎn)換呢?
這是URL編碼的表示。對(duì)于每個(gè)字節(jié),它可以由兩個(gè)十六進(jìn)制值%表示,后跟ASCII碼:根據(jù)URL編碼,URL中的空格是20,因此URL中的空格是
RL。實(shí)際上,轉(zhuǎn)義只是為了符合URL規(guī)范。因?yàn)樵跇?biāo)準(zhǔn)的URL規(guī)范中,不允許在URL中出現(xiàn)中文和許多字符。
看一下PHP中URLEncode的描述。
URLEncode--encode URL string
]string URLEncode(string$STR)
返回一個(gè)字符串,其中-除字符外的所有非字母數(shù)字字符。用百分號(hào)(%)后跟兩個(gè)十六進(jìn)制數(shù)字替換,空格用加號(hào)()編碼。此編碼方法與WWW form post data相同,與application/x-WWW-form-urlencoded相同。由于歷史原因,這種編碼不同于rfc1738編碼(參見rawurlen代碼()),它將空間編碼為加號(hào)()。這個(gè)函數(shù)可以很容易地對(duì)字符串進(jìn)行編碼,并將其用于URL的請(qǐng)求部分。它還可以方便地將變量傳遞到下一頁
URL編碼遵循以下規(guī)則:每對(duì)名稱/值由&;字符分隔;窗體中的每對(duì)名稱/值由=字符分隔。如果用戶沒有為名稱輸入值,則名稱仍會(huì)顯示,但沒有值。任何特殊字符(即不是簡(jiǎn)單的7位ASCII字符的字符,如中文字符)都將以十六進(jìn)制編碼,并帶有%字符。當(dāng)然,還將包括像=、&;和%這樣的特殊字符。實(shí)際上,URL編碼是字符ASCII碼的十六進(jìn)制。但是,有一個(gè)細(xì)微的變化,需要在它前面加上“%”。例如“”的ASCII碼是92,92的十六進(jìn)制碼是5C,所以“”的URL碼是。那漢字的網(wǎng)址編碼呢?很簡(jiǎn)單。讓我們看一個(gè)例子:Hu的ASCII碼是-17670,十六進(jìn)制碼是Bafa,URL碼是“”。
為什么要進(jìn)行url encode?
URLEncode編碼:是用URL對(duì)字符串進(jìn)行編碼的一種編碼方法,主要解決URL中的中文亂碼問題。例如:字符串mytext=java.net.url編碼器. encode(“China”,“UTF-8”)//URLEncode編碼字符串mytext2=java.net.url解碼器. decode(mytext,“UTF-8”)//URLEncode對(duì)同一頁上的兩條語句進(jìn)行解碼,結(jié)果是:mytext:China,mytex2:China