且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

编码知识学习笔记之一

更新时间:2022-06-29 04:46:35

 

编码知识学习笔记之一

一.有哪些编码

1. ANSI

2.Unicode

3.Unicode big Endian

4.Unicode - ASCII Escaped

 

5.UTF-7

6.UTF-8

7.UTF-16

 

8.UTF-8 - 无 BOM

9.UTF-16 - 无 BOM

 

10.UTF-16 - Big Endian

11.UTF-16 - Big Endian - 无 BOM

12.GBK

二.Unicode是什么的缩写

Universal Multiple-Octet Coded Character Set

三.Unicode是什么

Unicode 是一种字符编码方法,它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的全称是"Universal Multiple-Octet Coded Character Set",简称为UCS。UCS可以看作是"Unicode Character Set"的缩写。

四.Unicode的历史

目前存在两个试图独立设计Unicode的组织:

1.  国际标准化组织(ISO)

2.  一个软件制造商的协会(unicode.org)

各自研发的项目

ISO开发了ISO 10646项目

Unicode协会开发了Unicode项

 

在1991年前后,双方都认识到世界不需要两个不兼容的字符集。于是它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从Unicode2.0开始,Unicode项目采用了与ISO 10646-1相同的字库和字码。

 

五.Unicode的最新标准

目前两个项目仍都存在,并独立地公布各自的标准。

1.Unicode协会现在的最新版本是2005年的Unicode 4.1.0。

2.ISO的最新标准是10646-3:2003。

六.UCS是什么的缩写

Unicode Character Set

七.UTF是什么的缩写

UCS Transformation Format

八.UCS与UTF的关系是怎样的?

UCS规定了怎么用多个字节表示各种文字。

怎样传输这些编码,是由UTF(UCS Transformation Format)规范规定的

小结:

UCS:表示各种文字

UTF:传输这些文字

九.UTF有哪些常见规范(也就是编码格式)

1.UTF-7

2.UTF-8

3.UTF-16

十.UTF的描述UTF-8和UTF-16编码的规范文档是什么?

IETF 的RFC2781和RFC3629以RFC的一贯风格,清晰、明快又不失严谨地描述了UTF-16和UTF-8的编码方法。

RFC2781描述UTF-16编码规范

RFC3629描述UTF-8编码规范

十一.IETF是什么缩写

Internet Engineering Task Force

十二.IETF组织的作用是什么

IETF负责维护的RFC

十三.RFC文档的作用是什么

RFC是Internet上一切规范的基础

十四.Unicode与ASCII,以及GB的兼容性关系

Unicode只与ASCII兼容(更准确地说,是与ISO-8859-1兼容),与GB码不兼容

十五.UCS两种格式

UCS-2和UCS-4

十六.UCS-2和UCS-4的区别

1.UCS-2就是用两个字节编码

2.UCS-4就是用4个字节(实际上只用了31位,最高位必须为0)编码

十七.UCS-2和UCS-4各自有多少个码位

UCS-2有2^16=65536个码位,UCS-4有2^31=2147483648个码位。

十八.什么叫UCS-4 BMP

UCS -4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个plane。每个plane根据第3个字节分为 256行 (rows),每行包含256个cells。当然同一行的cells只是最后一个字节不同,其余都相同。

也就是说:

UCS -4是4个字节,从高到低,从第1个字节到第4个字节,

第1个字节是高字节,第4个字节是低字节

第1个字节分成128个group

第2个字节分成256个plane

第3个字节分成256 个rows

第4个字节分成256个cells

group 0的plane 0被称作Basic Multilingual Plane, 即BMP。或者说UCS-4中,高两个字节为0的码位被称作BMP。

 

将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。在UCS-2的两个字节前加上两个零字节,就得到了UCS-4的BMP。而目前的UCS-4规范中还没有任何字符被分配在BMP之外。