什么是application/x-www-form-urlencoded字符串?
它是一种编码类型。
当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串。
表单提交时也是如此,当包含非西欧字符的字符串时,系统也会将这些字符转换成application/x-www-form-urlencoded字符串。
复制代码
package com.app;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class AA {
public static void main(String[] args) {
/**
* 将application/x-www-form-urlencoded字符串 转换成普通字符串
*/
String keyWord = "";
try {
keyWord = URLDecoder.decode("%E6%96%87%E6%A1%A3", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(keyWord);
/**
* 将普通字符串转换成application/x-www-form-urlencoded字符串
* 必须强调的是编码方式必须正确,如baidu的是gb2312,而google的是UTF-8
*/
String urlStr = "" ;
try {
urlStr = URLEncoder.encode("文档", "Utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(urlStr);
}
}
复制代码
运行结果是:
文档
%E6%96%87%E6%A1%A3
2、URLEncoder 和 URLDecoder
在java1.3和早期版本中,返回一个新的被编码后的string,encode( ) 使用了平台的默认编码形式
编码: public static String encode(String s)
解码: public static String decode(String s)
在java1.4中及以后,要求用户自己指定编码形式,比如 "UTF-8" 、 "gb2312" 。
编码: public static String encode(String s, String encoding) throws UnsupportedEncodingException
解码: public static String decode(String s, String encoding) throws UnsupportedEncodingException
注意:如果你拿不定主意用哪种编码方式,那就选择UTF-8吧。它比其他任何的编码形式更有可能得到正确的结果。