代码1
public class BytesCodeTest {
public static void main(String[] args) {
String test = "安徽省zx";
System.out.print("原始字符:");
for (char b : test.toCharArray()) {
System.out.print(b + " ");
}
System.out.println();
try {
byte[] iso8859 = test.getBytes("ISO-8859-1");
printByte("ISO-8859-1", iso8859);
byte[] gb2312 = test.getBytes("GB2312");
printByte("GB2312", gb2312);
byte[] gbk = test.getBytes("GBK");
printByte("GBK", gbk);
byte[] utf8 = test.getBytes("UTF-8");
printByte("UTF-8", utf8);
byte[] utf16 = test.getBytes("UTF-16");
printByte("UTF-16", utf16);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void printByte(String charset, byte[] bytes) {
System.out.print("编码格式【" + charset + "]时 bytes= ");
for (byte b : bytes) {
System.out.print(b + " ");
}
System.out.println();
}
}
程序运行结果:
结论:
- 1、英文字母在以上编码格式中均是一个byte,且对应的byte值均相同;
- 2、ISO-8859-1的编码格式中一个字符一个byte;
- 3、GBK和GB2312的编码结果基本上相同;
- 4、UTF-8编码格式中一个中文字符为三个byte,英文字符是一个byte;
- 5、UTF-16编码格式中每个字符均是2个byte。******
这里输入代码
```public class BytesCodeTranslate {
public static void main(String[] args) throws UnsupportedEncodingException {
String strGBK = "订单号重复";
System.out.print("编码格式为【GBK】下的bytes: ");
for (byte bt : strGBK.getBytes("GBK")) {
System.out.print(bt + " ");
}
System.out.println();
System.out.print("编码格式为【UTF-8】下的bytes: ");
String strUTF8 = new String(strGBK.getBytes("UTF-8"), "UTF-8");
for (byte bt : strUTF8.getBytes("UTF-8")) {
System.out.print(bt + " ");
}
System.out.println();
System.out.println("GBK-->UTF-8" + strUTF8);
System.out.println("UTF-8-->GBK" + new String(strUTF8.getBytes("GBK"), "GBK"));
}
}