整理摘录一些相关的东西:
1、字符集和字符编码
2、ASCII与Unicode
ASCII就是编码英文的26个字母和一些常见的符号,之后扩展了一半。总之是一个字节来做编码,大于128的部分是一些特殊符号。但ASCII是无法编码别的东西的,比如说是不存在“中文的ascii码需要2个字符”这种说法的。ASCII就只有一个字节。
Unicode是足够编码地球上所有的语言了,所以ASCII中所能表示的,Unicode当然全部包括了。Unicode本身是只有2个字节的,之所以出现UTF-8,UTF-16等等之类,那是为了针对不同的应用环境,提高整体编码效率,比如如果某篇文章里绝大部分是英语(单字节就能表示),就比较适合使用utf-8,而如果绝大部分是中文(需要双字节),可能就utf-16比较合适了。
ascii是一个字节,但是unicode可不一定就是两个字节. ascii只能表示英文数字和常用标点符号,编码在1-127之间.unicode可以表示所有字符,编码范围很大.ascii 能表示256个符号,低128个是英文 数字 标点 与一些不可显示字符,高128个在不同的代码页上会表示不同的内容,就像繁体中文与简体中文一样,繁体中文的txt(ascii)在简体下打开就是乱码, unicode就不存在问题,因为能表是65000个字符,因此不会有重复字符发生。
3、Byte与Bit
1字=2字节(1 word = 2 byte)
1字节=8位(1 byte = 8bit)
一个字的字长为16
一个字节的字长是8
4、各种字符编码
参考
http://www.regexlab.com/zh/encoding.htm