首页 > 解决方案 > C++ Primer Plus 6th第3章-关于如何使用通用字符名

问题描述

c++primer plus 6th原文如下:</p>

使用通用字符名称类似于使用转义序列。通用字符名称以 \u 或 \U 开头。\u 形式后跟 8 个十六进制数字,\U 形式后跟 16 个十六进制数字。这些数字代表 ISO字符的 10646 个代码点。(ISO 10646 是一个正在开发的国际标准,它为各种字符提供数字代码。请参阅本章后面的“Unicode 和 ISO 10646”。)

但是和我之前的观点有冲突,所以我在python3文档中找到了如下描述:</p>

在 Python 源代码中,可以使用 \u 转义序列编写特定的 Unicode 代码点,然后是四个十六进制数字,给出代码点。\U 转义序列类似,但需要八个十六进制数字,而不是四个。

所以我的问题是,当我使用 \u 形式时,它应该是四个十六进制位还是八个?

标签: c++unicode

解决方案


后四个十六进制数字,后\u八个\U。从 C++ 标准:

[lex.charset]/2通用字符名称结构提供了一种命名其他字符的方法。

hex-quad:
    hexadecimal-digit hexadecimal-digit hexadecimal-digit hexadecimal-digit
universal-character-name:
    \u hex-quad
    \U hex-quad hex-quad

推荐阅读