`
Cykit
  • 浏览: 23802 次
最近访客 更多访客>>
文章分类
社区版块
存档分类

[学习笔记]字符集编码

阅读更多

一、什么是字符集?什么是编码?

字符(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语言学习笔记(个人总结)

    ### C语言学习笔记知识点梳理 #### 一、计算机系统概述 **1.1 计算机系统功能** - **输入**: 将外部数据输入到计算机系统中。 - **处理**: 数据通过程序处理后生成新的数据。 - **输出**: 处理后的数据输出到外部...

    mysql学习笔记

    在处理中文字符时,确保数据库和表的字符集设置正确至关重要。创建数据库时,应指定UTF-8字符集,如下所示: ```sql CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; ``` 这里的'utf8_...

    单片机C51学习笔记

    单片机C51的学习笔记深入探讨了C51编程中的关键概念,特别是关于内存结构、头文件使用、变量类型及作用域、中断处理、编译器限制、指针操作和预处理指令等方面的知识点。下面我们将逐一解析这些知识点。 ### 一、...

    (初级)机器学习笔记一:python基础语法之数据类型和字符串

    本次笔记是关于Python语言基础知识中的数据类型和字符串操作,这是学习机器学习和数据科学的入门要点。 首先,Python的基本数据类型包括整型(int)、浮点型(float)、布尔型(bool)以及复数类型(complex),...

    修改oracle 数据服务器编码

    在阅读《oracle学习笔记.doc》文档时,会发现更多关于Oracle字符集转换的细节,包括使用`DBMS_REDEFINITION`包进行在线转换、使用`UTL_I18N`包进行字符集兼容性检查,以及处理BINARY和LOB列的策略。 此外,了解字符...

    Freemarker 学习笔记一 【乱码解决】

    这篇学习笔记主要讨论如何解决Freemarker中的乱码问题。 首先,我们要理解乱码的产生原因。乱码通常是因为字符编码不一致导致的,例如,服务器端使用UTF-8编码,而客户端(浏览器)期望的是GBK编码。在Freemarker中...

    2023年数据库学习笔记.docx

    字符集设定`charset`指定了数据存储的编码格式,常用的有GBK和UTF8。校对集设定`collate`指定了数据比较的规则。 #### 查看数据库 查看数据库可以使用`Show databases`语句,查看所有数据库。也可以使用`Show ...

    C#字符串和正则表达式学习笔记

    在"C#字符串和正则表达式学习笔记.doc"这份文档中,你可能还会学到如何使用正则表达式进行高级匹配,例如使用捕获组和非捕获组,以及使用反向引用来引用先前匹配的子串。同时,可能会涉及到正则表达式的性能优化技巧...

    python学习笔记说明的PPT

    ### Python学习笔记说明的PPT知识点详述 #### 一、Python简介 - **Python的特点**: - **优雅**:简洁清晰的语法结构。 - **明确**:避免使用隐晦的方式解决问题。 - **简单**:尽可能简化语言结构。 - **...

    《Python学习笔记合集》需要自取

    《Python学习笔记合集》是一份全面且深入的Python编程学习资源,包含了从基础到进阶的1到15章内容。这份笔记是基于B站上马士兵老师的Python课程整理而成,旨在帮助学习者系统地掌握Python编程语言,并提供了一个方便...

    JAVA 字符串应用笔记

    Java默认使用平台的默认字符集,但应尽量明确指定如`getBytes("UTF-8")`。 以上内容是基于"JAVA 字符串应用笔记"可能涵盖的基本知识点,对于初学者来说,理解和掌握这些概念是进阶学习Java和Android开发的基础。在...

    前端学习笔记-黑马程序员

    前端学习笔记-黑马程序员 本篇文章主要介绍了 HTML 基础知识,涵盖了标签的基本概念、HTML 基本结构、文档类型声明、字符集、标签语义、标题标签、段落和换行标签、文本格式化标签、图像标签、路径、超链接标签、...

    javascript学习笔记发放1

    1. **字符集**:JavaScript采用Unicode字符集编码,这是因为Unicode可以涵盖全球所有书面语言,确保程序的国际化兼容性。每个JavaScript字符由两个字节表示,基于其16位编码系统。 2. **大小写敏感**:JavaScript是...

Global site tag (gtag.js) - Google Analytics