李成笔记网

专注域名、站长SEO知识分享与实战技巧

关于Unicode,看这一篇就够了

无论是用Python还是其它语言,处理字符编码都是一件极其痛苦的事情。我们无法忘记被UnicodeDecodeError和UnicodeEncodeError支配的恐惧。本文将以Python3为例,带你了解Unicode的基本概念,以及字符串编码解码的工作原理,让你从根本上理解字符编码。

首先,我们来看一看什么是字符编码。我们知道,计算机里所有的信息都是以数字的形式来表示的,字符也不例外。要想表示一个字符,首先要把它转换成对应的数字。

全国各国编码范围

0000-007F:C0控制符及基本拉丁文 (C0 Control and Basic Latin)

Unicode介绍

Unicode是一种通用的字符编码标准,旨在为世界上所有脚本和语言中的每个字符提供一个唯一的数值标识,称为代码点(code point)。它包含了几乎所有已知的语言、符号、标点符号、技术符号等字符。

Unicode的目标是解决以前存在的字符编码问题,因为不同的编码方案之间存在互不兼容的情况。在过去,不同的编码标准(如ASCII、ISO 8859等)只能表示特定范围的字符,无法满足全球范围内的字符需求。

Unicode使用十六进制数值表示每个字符的代码点,例如,拉丁字母大写字母'A'的代码点是U+0041,希腊字母大写字母'Ω'的代码点是U+03A9。Unicode标准定义了超过143,000个已分配的代码点,其中包括各种文字系统,如拉丁字母、希腊字母、西里尔字母、中日韩汉字、象形文字等。

Unicode编码

以上我们介绍了中文和西欧的字符与编码,但世界上还有很多其他国家的字符,每个国家的各种计算机厂商都对自己常用的字符进行编码,在编码的时候基本忽略了其他国家的字符和编码,甚至忽略了同一国家的其他计算机厂商,这样造成的结果就是,出现了太多的编码,且互相不兼容。
世界上所有的字符能不能统一编码呢?可以,这就是Unicode。


Unicode做了一件事,就是给世界上所有字符都分配了一个唯一的数字编号,这个编号范围从0x000000~0x10FFFF,包括110多万。但大部分常用字符都在0x0000~0xFFFF之间,即65536个数字之内。每个字符都有一个Unicode编号,这个编号一般写成十六进制,在前面加U+。大部分中文的编号范围为U+4E00~U+9FFF,例如,“马”的Unicode是U+9A6C。

<< < 1 2 3 4 >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言