字符串中编码解码问题
1.编码
- byte[] getBytes():使用平台的默认字符集将该String编码为一系列字节,将结果存储到新的字节数组中
- byte[] getBytes(String charsetName):使用指定的字符集将该String编码为一系列字节,将结果存储到新的字节数组中
2.解码
- String(byte[] bytes):通过使用平台的默认字符集解码指定的字节数组来构造新的String
- String(byte[] bytes,String charsetName):通过指定的字符集解码指定的的字节数组来构造新的String
3.使用UTF-8编码和解码
package com.characterstream;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class StringDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
//定义一个字符串
String s="中国";
byte[] bys = s.getBytes();//平台默认编码为UTF-8
System.out.println(Arrays.toString(bys));
//解码
String ss = new String(bys);//平台默认解码为UTF-8
System.out.println(ss);
}
}
4.使用GBK编码和解码
package com.characterstream;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class StringDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
String s="中国";
byte[] bys = s.getBytes("GBK");
System.out.println(Arrays.toString(bys));
String ss = new String(bys, "GBK");
System.out.println(ss);
}
}