C++ 中的国际字符与文本 I/O 处理
1. 国际字符处理
1.1 通用字符名
在 C++ 标准中,Unicode 有了新的应用。可以使用 Unicode 码点来指定字符,使用 \uXXXX 或 \UXXXXXXXX 的形式,将 XXXX 或 XXXXXXXX 替换为十六进制的码点。与 \x 转义不同, \u 必须使用四个十六进制数字, \U 必须使用八个。这种字符构造被称为通用字符名。
使用通用字符名是在字符串中编码国际字符的更好方法,它能避免本地字符集的不确定性。但如果编译器无法将 Unicode 码点映射到本地字符,就无法控制其行为。例如:
char pi{'\u03c0'};
如果本地字符集是 ISO 8859 - 7(希腊语),变量 pi 应初始化为 '\xf0' ;如果是 ISO 8859 - 1(拉丁语 - 1),编译器可能无法映射,会给出空格、问号,甚至拒绝编译。
需要注意的是, \u 和 \U 不是转义序列,可以在程序的任何地方使用,不仅限于字符或字符串字面量。使用 Unicode 字符名可以在不了解编码细节的情况下使用 UTF - 8 和 UTF - 16 字符串,如希腊小写字母 π 的 UTF -
超级会员免费看
订阅专栏 解锁全文
2433

被折叠的 条评论
为什么被折叠?



