网络编程之application/x-www-form-urlencoded MIME编码
編碼作用:
https://baike.baidu.com/item/魏杰/15581?fr=aladdin如果我們想要這種表單提交中鏈接的中文信息不顯示出來,那么我們就需要通過MIME編碼把中文轉換成另外一種編碼顯示出來,但是這種編碼在國內的瀏覽器中運用的并不多,谷歌瀏覽器用到該編碼。
如
https://baike.baidu.com/item/%E9%AD%8F%E6%9D%B0/15581?fr=aladdin好了,切入正題吧!
URLEncoder和URLDecoder用于完成普通字符串和application/x-www-form-urlencodedMIME字符串之間的相互轉換.
--------------------------------------------------------------------------------
中文API解釋:
java.net
類 URLEncoder
java.lang.Objectjava.net.URLEncoder
public class URLEncoderextends Object
HTML 格式編碼的實用工具類。該類包含了將 String 轉換為 application/x-www-form-urlencoded MIME 格式的靜態(tài)方法。有關 HTML 格式編碼的更多信息,請參閱 HTML 規(guī)范。
對 String 編碼時,使用以下規(guī)則:
- 字母數(shù)字字符 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不變。
- 特殊字符 "."、"-"、"*" 和 "_" 保持不變。
- 空格字符 "?" 轉換為一個加號 "+"。
- 所有其他字符都是不安全的,因此首先使用一些編碼機制將它們轉換為一個或多個字節(jié)。然后每個字節(jié)用一個包含 3 個字符的字符串 "%xy" 表示,其中 xy 為該字節(jié)的兩位十六進制表示形式。推薦的編碼機制是 UTF-8。但是,出于兼容性考慮,如果未指定一種編碼,則使用相應平臺的默認編碼。
例如,使用 UTF-8 編碼機制,字符串 "The string ü@foo-bar" 將轉換為 "The+string+%C3%BC%40foo-bar",因為在 UTF-8 中,字符 ü 編碼為兩個字節(jié),C3 (十六進制)和 BC (十六進制),字符 @ 編碼為一個字節(jié) 40 (十六進制)。
代碼練習:
package netCode;import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder;public class URLCoding {public static void main(String[] args) throws UnsupportedEncodingException {//獲取平臺默認的字符集System.out.println(System.getProperty("file.encoding"));String name = "魏杰DreamZuora";//encode(String name)之所以過時了。是因為平臺不確定你的編碼格式再解碼就麻煩,默認GBKSystem.out.println(URLEncoder.encode(name));//輸出結果%CE%BA%BD%DCDreamZuora//正確方式String URLName = URLEncoder.encode(name, "GBK");System.out.println(URLName);//解碼String string = URLDecoder.decode(URLName, "GBK");System.out.println(string);String n = new String(name.getBytes(),"GBK");System.out.println(n); /* 輸出結果:* GBK%CE%BA%BD%DCDreamZuora%CE%BA%BD%DCDreamZuora魏杰DreamZuora魏杰DreamZuora*/} }編碼和解碼:
? 在Web的瀏覽器中,不同的瀏覽器的編碼和解碼規(guī)則是不一樣的.
?? 對于W3C瀏覽器:遵循W3C組織規(guī)范的瀏覽器,(非IE).
???????????? ??編碼:byte[] data = “任小龍”.getByte(String charsetName);
?????????????? 解碼:String? str = new String(data, String charsetName);
?? 對于IE瀏覽器:
????????????? 編碼使用的application/x-www-form-urlencodedMIME機制.
總結
以上是生活随笔為你收集整理的网络编程之application/x-www-form-urlencoded MIME编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python安装Scrapy踩过的坑以及
- 下一篇: webmagic抓取实例