原鏈接在這裡
所謂Base64,就是說選出64個字符----小寫字母a-z、大寫字母A-Z、數字0-9、符號"+"、"/"(再加上作為墊字的"=",實際上是65個字符)----作為一個基本字符集。然後,其他所有符號都轉換成這個字符集中的字符。
首先把中文進行字符編碼。不同的編碼方法得到不同的二進制。再對二進制進行編碼。
"嚴"的utf-8編碼為E4B8A5,寫成二進制就是三字節的"11100100 10111000 10100101"將這個24位的二進制字符串,按照第3節中的規則,轉換成四組一共32位的二進制值"00111001 00001011 00100010 00100101",相應的十進制數為57、11、34、37,它們對應的Base64值就為5、L、i、l。
所以,漢字"嚴"(utf-8編碼)的Base64值就是5Lil。
為啥url需要編碼呢??
"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."
"只有字母和數字[0-9a-zA-Z]、一些特殊符號"$-_.+!*'(),"[不包括雙引號]、以及某些保留字,才可以不經過編碼直接用於URL。"
但是卻沒規定怎麼樣進行編碼。
目前比較通用的編碼是對除了a-zA-Z0-9.-_以外,都進行%替換。
http://xxx/Linuxjc/1157474.html TechArticle