1-2 新字符类型char16_t和char32_t
1.2 新字符类型char16_t和char32_t
1.2.2 使用新类型char16_t和char32_t
-
utf-8的字面量需要加前缀
u8
-
char16_t
的字面量需要加前缀u
-
char32_t
的字面量需要加前缀U
-
C++17标准允许utf-8类型字符保存在char中,仅限一个字节大小的字符(例如ascii码中的字符,但是汉字不行)。
char utf8c = u8'a'; //c++17 |
使用字符串时,如下:
char utf8[] u8"你好世界"; |
1.2.3 wchar_t存在的问题
C++98规定了wchar_t代表宽字符,但是并未规定其所占的内存大小,因此代码在Windows中是16位长度,在Linux和MacOS中是32位长度,不能保持相同的行为。
从C++11开始,使用utf-8或者utf-16等新标准。
发布于