快速提问,将我的15k行框架移植到UTF16:)
我操纵单个wchar_t是这样的吗?
wchar_t Help[128];
Help[0] = '?'
Help[1] = '/0'
或
wchar_t Help[128];
Help[0] = L'?'
Help[1] = L'/0'
答案 0 :(得分:0)
如果没有类型转换,您不应直接将char
分配给wchar_t
,否则编译可能会发出有关数据丢失的警告。
如果您没有为字符文字添加前缀,则它将具有char
类型,因此Help[0] = '?'
将无法编译。
如果您使用L
为字符文字添加前缀,则其类型为wchar_t
,因此Help[0] = L'?'
将会编译。
请注意,wchar_t
在所有平台上都不是16位。它在Windows上,但在许多其他平台上,它是32位,因此将用于UTF-32而不是UTF-16。如果您想在所有平台上使用UTF-16,您应该使用{CES中引入的char16_t
和u
文字前缀:
char16_t Help[128];
Help[0] = u'?';
Help[1] = u'\0';