Unicode 字符和UTF编码的理解】的更多相关文章

Unicode 编码的由来 我们都知道,计算机的内部全部是由二进制数字0, 1 组成的, 那么计算机就没有办法保存我们的文字, 这怎么行呢? 于是美国人就想了一个办法(计算机是由美国人发明的),也把文字转化成数字,计算机不就能够保存文字了,所以美国人就制定了一张表,规定了文字与数字的一一对应,字符A  就对应数字65, 字符B 就对应数字66, 这张表就是著名的ASCII 码表.由于美国人的文字比较少,就是a, b, c d 等等, 对应完了,发现一共使用了128个数字,这也太少了,一个字节都没…
Java 字符编码(一)Unicode 字符编码 Unicode(http://www.unicode.org/versions/#TUS_Latest_Version) 是一个编码方案,说白了希望给世界上每一种文字系统的每一个字符,都分配一个唯一的整数,这样就不可能有任何冲突了. 一.字符编码规范 1.1 ASCII(American Standard Code for Information Interchange) 美国信息交换标准代码,这是计算机上最早使用的通用的编码方案.那个时候计算机…
我们经常会遇到编码问题.Java号称国际化的语言,是因为它的class文件采用UTF-8,而JVM运行时使用UTF-16(至于为什么JVM中要采用UTF-16,我没看过 相关的资料,但我猜可能是因为JAVA里面一个字符(char)就是16位的,而UTF-16正是双字节编码),都是unicode的编码. unicode 的目标就是能支持世界上所有的字符集,也就是说几乎所有的字符集包含的字符在unicode中都有对应的编码.在unicode中,字符与代码的映射关 系,就是unicode字符集,称为U…
先明确几个概念 基础概念部分 1.字符编码方式CEF(Character Encoding Form) 对符号进行编码,便于处理与显示 常用的编码方式有 GB2312(汉字国标码 2字节) ASCII (标准交换字符 1字节) UNICODE(统一码, 4字节;现常用2字节编码方式,即使用第0组第0面(BMP字符),不包含扩充字符) 2.码点(Code Point) 二维表中行与列相交的点,称之为码点,也称之为码位(Code position):每个码点分配一个唯一的编号,称之为码点值或码点编号…
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节". 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出更多的状态,状态开始变来变去.他们看到这样是好的,于是它们就这机器称为"计算机". 开始计算机只在美国用.八位的字节一共可以组合出256(2的8次方)种不同的状态. 他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端设…
刚开始学习编程的时候,老对字符串编码的理解模模糊糊.也一直看这方便的资料,今天在看Dive in python时,突然有了新的理解(不知道是否正确). Python有个built-in函数ord(),返回一个字符的unicode值.这个函数并没有其他参数,那就是说,给定一个字符,就会有一个特定值对应.跟具体编码(utf-8,utf-16,gb2312)无关. 我之前错误的理解是:每套编码都有自己的对应表. 现在看来,unicode标准囊括了世界上所有的字符,每个字符都有对应的unicode值.…
环境:Ubuntu, Python 2.7 基础知识 这个程序涉及到的知识点有几个,在这里列出来,不详细讲,有疑问的直接百度会有一堆的. 1.urllib2 模块的 request 对像来设置 HTTP 请求,包括抓取的 url,和伪装浏览器的代理.然后就是 urlopen 和 read 方法,都很好理解. 2.chardet 模块,用于检测网页的编码.在网页上抓取数据很容易遇到乱码的问题,为了判断网页是 gtk 编码还是 utf-8 ,所以用 chardet 的 detect 函数进行检测.没…
我们最初学习计算机的时候,都学过ASCII编码. 但是为了表示各种各样的语言,在计算机技术的发展过程中,逐渐出现了很多不同标准的编码格式, 重要的有Unicode.UTF.ISO-8859-1和中国人经常使用的GB2312.BIG5.GBK等. 1.编码基础知识 最早的编码是iso8859-1,和ascii编码相似.但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个. 1.1. ISO-8859-1 通常叫做Latin-1 属于单字节编码,最多能表示的字符范围是0-255,应…
字符编码的发展历史 Unicode和UTF-8有何区别? 在这个问题下的于洋的最高票回答中,比较完整地介绍了字符编码的发展历史,为了便于记忆,再次简要概括一番. 一个字节:最初一个字节的标准是混乱的,出现过4位.6位.7位的一字节标准,最终由于历史原因和物理存储需求(8位是2的3次方,方便物理存储),所以采用了8位为一个字节的标准. ASCII:定下了8位为一个字节后,那么一个字节可以表示的状态就有256种(2^8),对应0-255号.接下来就需要考虑8位如何表示一个字符了,ASCII码顾名思义…
最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是 255(二进制 11111111=十进制 255),如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是 65535,4个字节可以表示的最大整数是4294967295. 最早只有 127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码表被称为 ASCII 编码,比如大写字母 A 的编码是65,小写字母 z 的编码是 122.没有其他的语言编码. U…