- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
C++11 标准中的第 2.14.5p9 段说(强调我的):
A string literal that begins with u, such as u"asdf", is a char16_t string literal. A char16_t string literal has type “array of n const char16_t”, where n is the size of the string as defined below; it has static storage duration and is initialized with the given characters. A single c-char may produce more than one char16_t character in the form of surrogate pairs.
如何编码 unicode 点 U+10000,它由 char16_t 字符串文字中的代理对 D800(高代理)和 DC00(低代理)组成?
上面引文中提到的c-char
是什么意思?
最佳答案
其实很简单:u"\U00010000"
。如文中所述,单个 c-char(在本例中为 \U00010000
)可以生成多个 char16_t
。快速测试会发现 u"\U00010000"
的类型是 char16_t const[3]
(2 用于代理对 + 1 用于空终止符)。
或者,您可以简单地将字符直接放入字符串中,如 u"𐀀"
,假设源文件使用您的编译器期望的编码保存。这将是完全相同的事情,因为对源文件执行的第一步是用它的 universal-character-name 替换基本字符集之外的任何字符(即 \U00010000
)。
c-char 是“除单引号 '
、反斜杠 \
或新-行字符”,或一个转义序列(如\n
,或\123
,或\x41
) ,或通用字符名称(如\u1234
或\U12345678
)。
标准文档在末尾有一个语法产生式索引,您可以使用它来查找这些内容。
关于c++ - 如何在 char16_t 字符串文字中编码 unicode 点 U+10000?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17474090/
我是一名优秀的程序员,十分优秀!