难分难解的字符集ASCII、Unicode、UTF-8 ---- 如果你也感到困惑,赶紧来围观

闲来无事学习一下Python,在看到关于Python字符类型的时候有提到字符集,字符集的问题我一直没搞明白,ASCII、Unicode、UTF-8之间有什么区别呢?借着这个机会总算是有了一点点的明白,记录下来,学习一下。

谈到字符集的人,肯定是跟计算机打交道的人,由于计算机只能处理数字,没有人类这么超高的智慧,如果计算机需要处理文本,那就必须把文本转换成数字。那么问题来了:如何实现把文本转换成数字这个过程呢?聪明的人类想到了字符集。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),也就是说8位一个字节。所以,一个字节能表示的最大的整数就是255(28-1,二进制数字1111
1111 = 十进制 255),如果要表示更大的数字,就必须采用更多的字节,比如两个字节表示的最大整数是65535(216-1).

由于计算机诞生于美国,因此最初只是把大小写英文字母、数字和一些符号编码到计算机,这个编码就是ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。下面是ASCII编码表,^_^
:

原文地址: Read More >>

时间: 2024-10-06 19:58:26

难分难解的字符集ASCII、Unicode、UTF-8 ---- 如果你也感到困惑,赶紧来围观的相关文章

【转】关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)

转载地址:http://www.imkevinyang.com/2010/06/%E5%85%B3%E4%BA%8E%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81%EF%BC%8C%E4%BD%A0%E6%89%80%E9%9C%80%E8%A6%81%E7%9F%A5%E9%81%93%E7%9A%84.html 字符编码的问题看似很小,经常被技术人员忽视,但是很容易导致一些莫名其妙的问题.这里总结了一下字符编码的一些普及性的知识,希望对大家有所帮助. 还是得从ASC

关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)

字符编码的问题看似很小,经常被技术人员忽视,但是很容易导致一些莫名其妙的问题.这里总结了一下字符编码的一些普及性的知识,希望对大家有所帮助. 还是得从ASCII码说起 说到字符编码,不得不说ASCII码的简史.计算机一开始发明的时候是用来解决数字计算的问题,后来人们发现,计算机还可以做更多的事,例如文本处 理.但由于计算机只识“数”,因此人们必须告诉计算机哪个数字来代表哪个特定字符,例如65代表字母‘A’,66代表字母‘B’,以此类推.但是计算机之间字符-数字的对应关系必须得一致,否则就会造成同

Unicode, UTF, ASCII, ANSI format differences

Going down your list: "Unicode" isn't an encoding, although unfortunately, a lot of documentation imprecisely uses it to refer to whichever Unicode encoding that particular system uses by default. On Windows and Java, this often means UTF-16; in

【转】【编码】ANSI,ASCII,Unicode,UTF8

不同的国家和地区制定了不同的标准,由此产生了 GB2312.GBK.GB18030.Big5.Shift_JIS 等各自的编码标准.这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码.在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码:在繁体中文Windows操作系统中,ANSI编码代表Big5:在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码.不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,

多字节字符集与Unicode字符集

在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset). 多字节字符集: 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个 字符,总共表示128个字符,其中包括了 英文字母.数字.标点符号等常用字符.之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主要在原来的7 bits字符集的基础上加入了一些特殊符号.后来,由于各国语言的加入,

[转]ASCII UNICODE与UTF-8编码规则及区别

字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出 256种状态,这被称为一个字节(byte).也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从 0000000到11111111. 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一

关于ASCII,Unicode和UTF-8

自己也不是很明白这些编码,百度了一下,整理出来与大家分享分享,在此感谢作者. 先说说这些编码 ANSI:最早的时候计算机ASCII码只能表示256个符号(含控制符号),这个字符集表示英文字母足够,其中,我们键盘上可见的符号的编码范围是从32到126(大小写英文字母.数字.英文符号等).但表示汉字.日语.韩语就不太够用了,汉字常用字有3000多个. 但是中国人也要用电脑打字,于是,中国人就研究出来了最早的中文字符集GB2312(GBK就是后来的扩展),GB2312的做法是,把ASC码取值范围的12

windows 编程 —— 宽字符集 与 Unicode

从ASCII码 到 Unicode 双字节字符集 迄今为止,我们已经看到了256个字符的字符集(ASCII).但中国.日本和韩国的象形文字符号有大约21,000个.如何容纳这些语言而仍保持和ASCII的某种兼容性呢? 解决方案(如果这个说法正确的话)是双字节字符集(DBCS:double-byte character set).DBCS从256代码开始,就像ASCII一样.与任何行为良好的代码页一样,最初的128个代码是ASCII.然而,较高的128个代码中的某些总是跟随着第二个字节.这两个字节

关于VS2015 字符集采用Unicode时出现的问题

使用unicode字符集编码的时候总是会提示,这里不对,那里也不对,由于嫌麻烦,就直接把字符集改成宽字符集. 但是感觉,这样永远也无法理解unicode的字符集的使用. UNICODE:它是用两个字节表示一个字符的方法.比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节.UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义.  MBC