这些ASCII / Unicode字符串是否相同?

时间:2012-07-19 22:17:46

标签: string unicode ascii

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

2 个答案:

答案 0 :(得分:0)

因为ASCII是unicode的子集,所以任何ASCII字符串在unicode中都是相同的,假设你当然用UTF-8编码它。显然,UTF-16或UTF-32编码会使它变得相当臃肿。

答案 1 :(得分:0)

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

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

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