一、什么是字符集?什么是编码?
字符(Charcter)是文字与符号的总称,包括文字、图形符号、数学符号等。
一组抽象字符的集合就是字符集(Charset)。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。字符集的子集也是字符集。
计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。每种编码都限定了一个明确的字符集合,叫做被编码过的字符集(Coded Character Set),这是字符集的另外一个含义。通常所说的字符集大多是这个含义。
因为制定编码的同时往往也制定了字符集,所以经常把字符集和编码混为一谈,具体区分细节不用细究。
二、通用字元集(Universal Character Set,UCS)
通用字元集(Universal Character Set,UCS)是由ISO制定的ISO10646(或称ISO/IEC 10646)标准所定义的字元编码方式,采用4字节编码。又称Universal Multiple-Octet Coded Character Set,大陆译为通用多八位编码字符集,臺湾译为广用多八位元编码字元集。
表示一个UCS或Unicode值的十六进位数通常在前面加上「U+」,例如「U+0041」代表字元「A」。
通用字元集是所有包括了其他字元集。它保证了与其他字元集的双向相容,即,如果你将任何文本字元串翻译到UCS格式,然後再翻译回原编码,你不会丢失任何信息。
三、unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。
2006年6月的最新版本的 Unicode 是 2005年3月31日推出的Unicode 4.1.0 。另外,5.0 Beta已于2005年12月12日推出,以供各会员评价。
Unicode 的编码和实现
大概来说,Unicode 编码系统可分为编码方式和实现方式两个层次。
1.编码方式
Unicode 的编码方式与 ISO 10646 的通用字元集(亦称[通用字符集])(Universal Character Set,UCS)概念相对应,目前的用于实用的 Unicode 版本对应于 UCS-2,使用16位的编码空间。也就是每个字符占用2个字节。
2.实现方式
Unicode 的实现方式不同于编码方式。一个字符的 Unicode 编码是确定的。但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对 Unicode 编码的实现方式有所不同。Unicode 的实现方式称为Unicode转换格式(Unicode/UCS Transformation Format,简称为 UTF)。
Unicode 的实现方式还包括 UTF-7、Punycode、CESU-8、SCSU、UTF-32等,这些实现方式有些仅在一定的国家和地区使用,有些则属于未来的规划方式。目前通用的实现方式是 UTF-16小尾序(BOM)、UTF-16大尾序(BOM)和 UTF-8。
UCS 和 Unicode 只是分配整数给字符的编码表,UTF-8、UTF-16、CESU-8等则指定了如何存储!
参考文献:
http://bk.baidu.com/view/40801.htm unicode参考
http://bk.baidu.com/view/354447.htm UCS参考
http://bk.baidu.com/view/25412.html UTF-8参考
分享到:
相关推荐
1. **字符集与编码**:Android系统默认使用UTF-8编码,而不是iso-8859-1。当你使用`getBytes()`方法时,如果没有指定编码,则默认使用平台的默认编码,通常是UTF-8。为了避免编码问题,建议在进行字符串处理时明确...
### C语言学习笔记知识点梳理 #### 一、计算机系统概述 **1.1 计算机系统功能** - **输入**: 将外部数据输入到计算机系统中。 - **处理**: 数据通过程序处理后生成新的数据。 - **输出**: 处理后的数据输出到外部...
在处理中文字符时,确保数据库和表的字符集设置正确至关重要。创建数据库时,应指定UTF-8字符集,如下所示: ```sql CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; ``` 这里的'utf8_...
单片机C51的学习笔记深入探讨了C51编程中的关键概念,特别是关于内存结构、头文件使用、变量类型及作用域、中断处理、编译器限制、指针操作和预处理指令等方面的知识点。下面我们将逐一解析这些知识点。 ### 一、...
本次笔记是关于Python语言基础知识中的数据类型和字符串操作,这是学习机器学习和数据科学的入门要点。 首先,Python的基本数据类型包括整型(int)、浮点型(float)、布尔型(bool)以及复数类型(complex),...
在阅读《oracle学习笔记.doc》文档时,会发现更多关于Oracle字符集转换的细节,包括使用`DBMS_REDEFINITION`包进行在线转换、使用`UTL_I18N`包进行字符集兼容性检查,以及处理BINARY和LOB列的策略。 此外,了解字符...
这篇学习笔记主要讨论如何解决Freemarker中的乱码问题。 首先,我们要理解乱码的产生原因。乱码通常是因为字符编码不一致导致的,例如,服务器端使用UTF-8编码,而客户端(浏览器)期望的是GBK编码。在Freemarker中...
字符集设定`charset`指定了数据存储的编码格式,常用的有GBK和UTF8。校对集设定`collate`指定了数据比较的规则。 #### 查看数据库 查看数据库可以使用`Show databases`语句,查看所有数据库。也可以使用`Show ...
在"C#字符串和正则表达式学习笔记.doc"这份文档中,你可能还会学到如何使用正则表达式进行高级匹配,例如使用捕获组和非捕获组,以及使用反向引用来引用先前匹配的子串。同时,可能会涉及到正则表达式的性能优化技巧...
### Python学习笔记说明的PPT知识点详述 #### 一、Python简介 - **Python的特点**: - **优雅**:简洁清晰的语法结构。 - **明确**:避免使用隐晦的方式解决问题。 - **简单**:尽可能简化语言结构。 - **...
《Python学习笔记合集》是一份全面且深入的Python编程学习资源,包含了从基础到进阶的1到15章内容。这份笔记是基于B站上马士兵老师的Python课程整理而成,旨在帮助学习者系统地掌握Python编程语言,并提供了一个方便...
Java默认使用平台的默认字符集,但应尽量明确指定如`getBytes("UTF-8")`。 以上内容是基于"JAVA 字符串应用笔记"可能涵盖的基本知识点,对于初学者来说,理解和掌握这些概念是进阶学习Java和Android开发的基础。在...
前端学习笔记-黑马程序员 本篇文章主要介绍了 HTML 基础知识,涵盖了标签的基本概念、HTML 基本结构、文档类型声明、字符集、标签语义、标题标签、段落和换行标签、文本格式化标签、图像标签、路径、超链接标签、...
1. **字符集**:JavaScript采用Unicode字符集编码,这是因为Unicode可以涵盖全球所有书面语言,确保程序的国际化兼容性。每个JavaScript字符由两个字节表示,基于其16位编码系统。 2. **大小写敏感**:JavaScript是...