<span style="font-size:18px;">gbk编码中文占用2个字节,英文占用一个字节
utf-8编码中文占用3个字节,英文占用一个字节
Java是双字节编码:编码是utf-16be。中文占用两个字节,英文也占用两个字节</span>
<span style="font-size:18px;">package com.servlet;
import java.io.UnsupportedEncodingException;
public class B {
/** 验证编码所占用字节
* gbk编码中文占用2个字节,英文占用一个字节
* utf-8编码中文占用3个字节,英文占用一个字节
* Java是双字节编码:编码是utf-16be。中文占用两个字节,英文也占用两个字节
*/
public static void main(String[] args) throws UnsupportedEncodingException {
/*
* gbk编码下 */
String s ="欢迎你们";
System.out.println("gbk编码下的值:"+s);
byte[] bytes1 = s.getBytes();//将字符串转化成字节
System.out.print("把字节(转换成了int)以16进制的方式显示:");
for (byte b : bytes1) {
System.out.print(Integer.toHexString(b & 0xff)+" ");
}
System.out.println();
System.out.print("把字节(转换成了int)以16进制的方式显示:");
for (byte b : bytes1) {//把字节(转换成了int)以16进制的方式显示
System.out.print(Integer.toHexString(b)+" ");
}
System.out.println();
System.out.print("以gbk编码方式转化成二进制:");
byte[] bytes2 = s.getBytes("gbk");
for (byte b : bytes2) {
System.out.print(Integer.toHexString(b & 0xff)+" ");
}
System.out.println();
System.out.print("以utf-8编码方式转化成二进制:");
byte[] bytes3 = s.getBytes("utf-8");
for (byte b : bytes3) {
System.out.print(Integer.toHexString(b & 0xff)+" ");
}
System.out.println();
System.out.print("以utf-16be编码方式转化成二进制:");
byte[] bytes4 = s.getBytes("utf-16be");
for (byte b : bytes4) {
System.out.print(Integer.toHexString(b & 0xff)+" ");}
}
}</span>