45、C++ 中的国际字符与文本 I/O 处理

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 -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值