* 字符集知识: * 计算机底层不可以直接存储字符的。计算机底层只能存储二进制(0,1) * 二进制可以转换成十进制 * 结论:计算机底层可以表示十进制编号。计算机可以给人类字符进行编号存储,这套编号规则就是字符集!! * ASCII字符集; * 包括数字,英文,符号 * 1个字节存储一个字符,一个字节是8位,总共表示128个字符,对于英文,数字是够用的 * GBK; * window系统默认的码表。兼容ASCII码表,也包含了几万个汉字,并支持繁体汉字以及部分的日韩文字。 * 注意:GBK是中国的码表,一个中文以两个字节的形式存储,但不包含世界上所有国家的文字。 * Unicode码表: * (又称统一码,万国码,单一玛)是计算机科学领域里的一项业界字符的编玛标准。 * 由于Unicode会先通过UTF-8,UTF-16,以及UTF-32的编码成二进制后在存储到计算机,其中最常见的就是UTF-8 * 注意:Unicode是万国码,以UTF-8编码后一个中文一般以三个字节的形式存储 * UTF-8也要兼容ASCII编码表 * 技术人员都应该使用UTF-8的字符集编码 * 编码前和编码后的字符集需要一致,否则会出现中文乱码 * */ public class charListKnowledge { public static void main(String[] args) throws UnsupportedEncodingException { //编码;把文字转换成字节 String name="abc我爱你中国"; // byte[]bytes=name.getBytes("GBK"); byte[]bytes=name.getBytes(); System.out.println(bytes.length); System.out.println(Arrays.toString(bytes)); //解码:字节转换成中文格式 //String rs=new String(bytes,"GBK");//默认是UTF-8 String rs=new String(bytes);//默认是UTF-8 System.out.println(rs); }
06-15
1770
10-05
1374