C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串富连网标准编码格式: UTF-8 • 美国人最后还是有点不爽,而且 UTF-16 没法兼容 ASCII ,在网 络上传输还需要考虑字节序等等各种问题。所以又推出了完全兼容 ASCII 的 UTF-8 格式。 • UTF-32 是固定为 4 字节的编码(实际 Unicode 只有 3 字节) 。 • UTF-16 是在 2 和 4 字节之间变长的编码。 • UTF-8 则是在 1 、 2 、 、 3 、 4 字节之间变长的编码。 • 其中 1 字节就是 ASCII 部分 0x00~0x7F ,剩余的部分根据他们 在 Unicode 中的顺序,依次变长。作为变长编码的代价, UTF-8 需要在二进制中浪费很多额外的空间来表示,导致中文汉字需要 3 字节才能存储。好处是这能完全兼容以前 const char * 的那套代码 ,包括 ‘ \0’ 结尾字符串都可以继续正常使用,不用全换到 GB18030 格式,所以有时候你会发现 Windows 上编辑好的文件,拿到 Linux (往往是 UTF-8 )的电脑上打开会变成乱码。就是 因为编码格式不匹配的原因。 • 但如果你 Windows 上写日记,只写 ASCII 字符,那么拿到 Linux 就不会有任何问题。因 为 UTF-8 和 GBK 这两个编码格式是兼容 ASCII 的,他保证 0x00~0x7F 仍然是原来那几 个英文字符,因为他们只利用0 码力 | 162 页 | 40.20 MB | 1 年前3
C++23: An Overview of Almost All New and Updated FeaturesPre-C++23 // UTF-32 character literal {LATIN CAPITAL LETTER A WITH MACRON} auto a { U'\u0100' }; // UTF-8 string literal {LATIN CAPITAL LETTER A WITH MACRON}{COMBINING GRAVE ACCENT} auto b { u8"\u0100\u0300"0 码力 | 105 页 | 759.96 KB | 6 月前3
共 2 条
- 1













