之间有什么区别
wchar_t arry[]
和
char arry[]
类型初始化。
对于Unicode
我知道的角色我知道它有几种编码格式。其中windows
使用UTF-16
。这意味着大多数字符都是16位。但在char
类型中,一个字符是8位。这是否意味着我们可以在wchar
类型中存储2字节?
哪种类型效率更高?为什么?
答案 0 :(得分:0)
两者都是Windows上的可变长度(wchar_t意味着UTF-16),后者对于大多数测试都是浪费。即使在CJK中,通过网络传输的文本也是一半。
The most portable and easiest way to support Unicode is to use UTF-8 (char)。转换为UTF-16以便将字符串传递给Windows API时,这意味着性能损失很小,但与系统调用相比,它相对较小。
答案 1 :(得分:-1)
Multibyte是一种可变宽度编码。使用英语时,您将使用1个字节,但对于非常罕见的字符集,通常使用2个或更多(最多6个字节)。因此,就内存使用而言,多字节通常更好。 但是,当您需要知道字符串中有多少字符时,在unicode中,您只需将字符串长度除以2(sizeof(wchar_t))。在多字节中,你必须遍历整个字符串并计算字母数。 见multibyte。