这是一个编码相关的问题,实际上字符串转换成二进制数 是什么数与选择的码表有关。
Charset
描述
US-ASCII 7 位 ASCII 字符,也叫作 ISO646-US、Unicode 字符集的基本拉丁块
ISO-8859-1 ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1
UTF-8 8 位 UCS 转换格式
UTF-16BE 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序
UTF-16LE 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序
UTF-16 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识
编码解码的例子
import java.util.*;
class EncodeDemo
{
public static void main(String[] args) throws Exception
{
String s = "你好";
byte[] b1 = s.getBytes("utf-8");
String s1 = new String (b1,"iso8859-1");
byte[] b2 = s1.getBytes("iso8859-1");
String s2 = new String (b2,"utf-8");
System.out.println(s1);
System.out.println(Arrays.toString(b1));
System.out.println(s2);
}
}
毕老师的视频是在第21天 |