黑马程序员技术交流社区
标题:
ASCII表和unicode表到底是怎么回事
[打印本页]
作者:
wupingtanlu
时间:
2012-5-13 00:27
标题:
ASCII表和unicode表到底是怎么回事
经常提到ASCII码和unicode码,但是对他还不是很了解,对他们两个之间关系还含糊不清,能否给我解释详细点啊。
作者:
黑马罗坚
时间:
2012-5-13 00:37
本帖最后由 nailsoul 于 2012-5-13 00:42 编辑
ASCII码 是美国编制的 里面存储了美国佬要用到的东西 如26个字母和一些标点符 号 数字 什么的 当然没汉字 日语什么的。。 有7位组成
钻用一个字节 unicode码是国际组织为了解决各个国家的的码表冲突和数量问题里面包含了几乎各个国家的文字 跟ASCII码完全兼容 即ASCII码是什么即在unicode码中也是什么 钻用2个字节char就是用的这种编码
作者:
小鹿叙鹿
时间:
2012-5-13 00:40
1. ASCII码
我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。
2.Unicode
正如上一节所说,世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。
可以想象,如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是Unicode,就像它的名字都表示的,这是一种所有符号的编码。
Unicode当然是一个很大的集合,现在的规模可以容纳100多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母Ain,U+0041表示英语的大写字母A,U+4E25表示汉字“严”。具体的符号对应表,可以查询unicode.org,或者专门的汉字对应表。
上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。
ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。
作者:
刘克方
时间:
2012-5-13 11:04
简单的说就是两种编码方式,就像两门语言,都能表达同样的意思,但表达所用的文字不同。
ASCII码不能所有的字符编码,如汉子,它就找不到对应的编码;
所以更强大的unicode码出现了;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2