一、认识编码

编码:规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码” 平常我们所说的“字符集”,比如:GB2312, GBK, JIS 等;
简单的说:编码就是将字符串转换为 byte 数组,解码就是把 byte 数组转换为 字符串
二、Java中常用的字符串的编码解码

1.将字符串转换成byte数组再恢复:

byte[] getBytes(String charsetName)
String(byte[] bytes, String charsetName)
或getBytes()
String(byte[] bytes)

2.使用String sun.misc.BASE64Encode.encode(byte[] b)

byte[] String sun.misc.BASE64Decode.decodeBuffer(String str)

将字符串转换成byte[],再转换成ASCII码;恢复时做逆操作。

在字符串转换成byte[]时,尽量用byte[] getBytes(String charsetName)方法,解码时也用相同的charsetName做参数,如果都不charsetName可能会导致一些中文字符不能正确解码。

3.使用java.net.URLEncoder类和java.net.URLDecoder类

它有static方法将字符串转换成‘pplication/x-www-form-urlencoded’格式便于在网络中传播

形如‘%20%35’。