鍍金池/ 問答/Java  Linux  數(shù)據(jù)庫/ 編碼轉(zhuǎn)換問題

編碼轉(zhuǎn)換問題

各位老哥,我想問一下
String s = new String(content.getBytes("GBK"));

String s= URLEncoder.encode(content, "GBK");
這兩個(gè)有什么區(qū)別嗎。
為什么第一個(gè)轉(zhuǎn)碼了之后作為http請求參數(shù)之后接收端還是亂碼
而第二種則不會亂碼???

回答
編輯回答
還吻

1.URL編碼(URL encoding),也稱作百分號編碼(Percent-encoding), 是特定上下文的統(tǒng)一資源定位符 (URL)編碼機(jī)制。適用于統(tǒng)一資源標(biāo)識符(URI)的編碼,也用于為"application/x-www-form-urlencoded" MIME準(zhǔn)備數(shù)據(jù), 因?yàn)樗糜谕ㄟ^HTTP的請求操作(request)提交HTML表單數(shù)據(jù)。--baidu.wiki

2.將需要轉(zhuǎn)碼的字符轉(zhuǎn)為16進(jìn)制,然后從右到左,取4位(不足4位直接處理),每2位做一位,前面加上%,編碼成%XY格式。并且有些字符要轉(zhuǎn)換為其他字符,比如' '轉(zhuǎn)換為+.
string->GBK
URL->application...(MIME)->GBK

  1. java 源碼

clipboard.png
clipboard.png

2018年7月1日 20:43