-2

“1055912799”ASCII 字符串是否等同于“1055912799”Unicode 字符串?

4

2 回答 2

0

因为 ASCII 是 unicode 的子集,所以任何 ASCII 字符串在 unicode 中都是相同的,当然前提是您使用 UTF-8 对其进行编码。显然 UTF-16 或 UTF-32 编码会导致它相当臃肿。

于 2012-07-19T22:20:31.860 回答
0

是的,Unicode 中的数字字符 0 到 9 被定义为与 Ascii 中相同的字符。更一般地说,所有可打印的 Ascii 字符也都以 Unicode 编码(顺便说一下,使用相同的代码编号)。

作为字节序列的内部表示是否相同取决于字符编码。Unicode 的 UTF-8 编码经过设计,使得 Ascii 字符具有与当前用于 Ascii 的唯一编码相同的字节编码表示(将每个 Ascii 代码编号映射到一个 8 位字节,第一位设置为零)。

Ascii 范围内字符的 UTF-16 编码表示可以说与 Ascii 编码“等效”,因为存在一个简单的映射:在 UTF-16 中,每个 Ascii 字符显示为两个字节,一个零字节和一个包含 Ascii 编号的字节。(这些字节的顺序取决于 UTF-16 的字节序。)但是这种“等价”概念通常不会被使用,也不会特别有用。

于 2012-07-19T22:35:38.503 回答