不同语言的unicode是如何分配的?

问题描述 投票:0回答:6

这对我来说似乎是最令人困惑的问题。

如何识别新字符的开头?

码点是如何分配的?

我们以汉字为例

分配给它们的代码点范围是多少,

为什么这样分配,有什么原因吗?

编辑: 请用你自己的话描述它,而不是通过引用。

或者可以推荐一本系统讲Unicode的书,你认为已经讲清楚了(这是最重要的)

unicode character-encoding
6个回答
5
投票

Unicode Consortium 负责代码点分配。如果您想要分配新字符或代码页,您可以在那里申请。有关示例,请参阅提案管道


3
投票

Unicode 规范的第 2 章定义了 Unicode 的一般结构,包括为哪种字符分配哪些范围。


2
投票

在这里查看 Unicode 的总体概述,可能会有所帮助:每个软件开发人员绝对必须了解 Unicode 和字符集的绝对最低限度(没有借口)


1
投票

Unicode 是由 Unicode Consortium 指定的标准。该规范定义了 Unicode 的字符集、通用字符集 (UCS),以及一些对该字符进行编码的编码,即 Unicode 转换格式UTF-7UTF-8UTF-16 UTF-32.

如何识别新字符的开头?

这取决于所使用的编码。 UTF-16 和 UTF-32 是具有固定码字长度(分别为 16 和 32 位)的编码,而 UTF-7 和 UTF-8 具有可变码字长度(从 8 位到 32 位),具体取决于字符点待编码。

码点是如何分配的?我们以汉字为例。分配给它们的代码点范围是什么,为什么这样分配,有什么原因吗?

UCS 分为所谓的“字符平面”。第一个是 Basic Latin(U+0000–U+007F,像 ASCII 一样编码),第二个是 Latin-1 Suplement(U+0080–U+00FF,像 ISO 8859-1 一样编码)等等.


0
投票
字符编码

而不是 代码页 字符编码是一种将某些字符映射到某些数据的方法(反之亦然!)

正如维基百科所说:

字符编码系统由一个代码组成,该代码将给定指令库中的每个字符与其他内容(例如自然数、八位位组或电脉冲序列)配对,以便于数据(通常是数字和/或文本)的传输)通过电信网络或计算机中的文本存储

最流行的字符编码是

ASCII

UTF-16UTF-8

ASCII

第一个在计算机中广泛使用的代码页。在 ANSI 中,每个字符只分配一个字节。因此 ANSI 的字符集非常有限(英文字母、数字……)

正如我所说,ASCII 在 MS-DOS 等旧操作系统中得到广泛使用。但 ASCII 并没有消亡并且仍在使用。当你有一个 10 个字符的 txt 文件并且它是 10 个字节时,你就有了一个 ASCII 文件!


UTF-16

在UTF-16中,一个字符分配两个字节。所以我们在 UTF-16 中可以有 65536 个不同的字符!

Microsoft Windows 在内部使用 UTF-16。


UTF-8

UTF-8 是另一种流行的字符编码方式。它使用可变长度字节(1 字节到 4 字节)作为字符。它还与 ASCII 兼容,因为 ASCII 字符使用 1 个字节。

大多数基于 Unix 的系统使用 UTF-8

编程语言不依赖于代码页。也许编程语言的特定实现不支持代码页(如 Turbo C++)

您可以使用现代编程语言中的任何代码页。他们还有一些用于转换代码页的工具。

有不同的 Unicode 版本,例如 Utf-7、Utf-8...您可以在

here

(推荐!)阅读它们,也许还可以在here了解更正式的详细信息


0
投票
脚本/字母表

- Unicode 范围 基础拉丁语 - U+0000 到 U+007F

Latin-1 补充 U+0080 至 U+00FF

西里尔字母 U+0400 至 U+04FF

希腊语和科普特语 U+0370 至 U+03FF

阿拉伯语 U+0600 至 U+06FF

希伯来语 U+0590 至 U+05FF

梵文 U+0900 至 U+097F

中日韩统一表意文字 U+4E00 至 U+9FFF

平假名 U+3040 至 U+309F

片假名 U+30A0 至 U+30FF

朝鲜文音节 U+AC00 至 U+D7AF

泰语 U+0E00 至 U+0E7F

泰米尔语 U+0B80 转 U+0BFF

孟加拉语 U+0980 至 U+09FF

格鲁吉亚 U+10A0 至 U+10FF

亚美尼亚 U+0530 至 U+058F

埃塞俄比亚 U+1200 至 U+137F

© www.soinside.com 2019 - 2024. All rights reserved.