由于使用了字符,阿拉伯和亚洲计算机使用更多内存?

时间:2014-07-28 19:47:31

标签: unicode encoding ascii

如果Unicode标准中使用的阿拉伯和亚洲字符使用超过1个字节,这意味着计算机阿拉伯人和亚洲人因使用的字符而花费更多内存?

1 个答案:

答案 0 :(得分:4)

我对阿拉伯语一无所知,所以这个答案只关注中文。

从技术上讲,如果使用UTF-8这样的表示,则需要更多字节来表示中文字符(3或4个字节,具体取决于字符是否在BMP中),而不是ASCII字符(1个字节)。但是,单个汉字通常表达英语中的整个单词。因此,最终,即使使用UTF-8编码,您的文本也会缩短。

使用其他编码时,ASCII字符的空间优势甚至更小。在UTF-16中,每个ASCII字符占用2个字节,中文字符占用2或4个字节(取决于它是否在BMP中)。因此,如果您的大部分中文文本都在BMP中,那么它比英语更具空间优势。 :-)当然,在UTF-32中,每个字符需要4个字节,BMP或否。

请注意,无论使用何种编码进行持久存储,许多编程语言都将全面使用UTF-32,尤其是在需要随机访问字符串中的字符时。这意味着ASCII字符在这些编程语言的进程内存中没有任何空间优势。