它们之间的区别是什么
wchar_t arry[] 和
char arry[] 键入initialization。
对于Unicode,我知道字符,我知道它有几种编码格式。其中windows使用UTF-16。这意味着大多数字符都是16位的。但在char类型中,一个字符是8位。这是否意味着我们可以在wchar类型中存储2byte?
哪种类型更有效?为什么?
发布于 2011-11-28 02:48:35
两者在Windows上都是可变长度的(其中wchar_t意味着UTF-16),而后者对于大多数测试来说都是浪费的。即使在CJK中,通过网络传输的文本也有一半是ASCII。
The most portable and easiest way to support Unicode is to use UTF-8 (char)。当为了将字符串传递给Windows API而转换为UTF-16时,这意味着较小的性能损失,但与系统调用相比相对较小。
发布于 2011-11-28 02:40:09
多字节是一种可变宽度编码。在使用英语工作时,您将使用1个字节,但对于非常罕见的字符集,通常使用2个或更多字节(最多6个字节)。因此,在内存使用方面,多字节通常更好。但是,当您需要知道字符串中有多少个字符时,在unicode中,您可以将字符串长度除以2 (sizeof (wchar_t))。在多字节中,你必须遍历整个字符串,并计算字母的数量。参见multibyte。
https://stackoverflow.com/questions/8287878
复制相似问题