Unicode 字符串字面量

语法 说明
“s字符序列(可选)” 通常字符串字面量。无前缀字符串字面量的类型是 const char[N],其中 N 是以执行窄编码 (C++23 前)通常字面量编码 (C++23 起)的编码单元计的字符串的大小,包含空终止符。
L"s字符序列(可选)" 宽字符串字面量。L"…" 字符串字面量的类型是 const wchar_t[N],其中 N 是以执行宽编码 (C++23 前)宽字面量编码 (C++23 起)的编码单元计的字符串的大小,包含空终止符。
u8"s字符序列(可选)" UTF-8 字符串字面量。u8"…" 字符串字面量的类型是 const char[N] (C++20 前)const char8_t[N] (C++20 起),其中 N 是以 UTF-8 编码单元计的字符串的大小,包含空终止符。
u"s字符序列(可选)" UTF-16 字符串字面量。u"…" 字符串字面量的类型是 const char16_t[N],其中 N 是以 UTF-16 编码单元计的字符串的大小,包含空终止符。
U"s字符序列(可选)" UTF-32 字符串字面量。U"…" 字符串字面量的类型是 const char32_t[N],其中 N 是以 UTF-32 编码单元计的字符串的大小,包含空终止符。
前缀(可选) R"d字符序列(可选)(r字符序列(可选))d字符序列(可选)" 原始字符串字面量。用于避免转义任何字符。分隔符间的任何内容都成为字符串的一部分。如果存在 前缀 则具有与上述相同的含义。结尾的 d字符序列需要和开头的 d字符序列一致。
语法 解释
s字符序列 一个或多个s字符
s字符 下列之一:
一个基础s字符
一个转义序列,定义见转义序列
一个通用字符名,定义见转义序列
基础s字符 来自源字符集 (C++23 前)翻译字符集 (C++23 起)去掉双引号(")、反斜杠(\)和换行符后的字符
前缀 L、u8、u、U 之一
d字符序列 一个或多个d字符,最多十六个
d字符 来自基础源字符集 (C++23 前)基础字符集 (C++23 起)去掉括号、反斜杠和空格后的字符
r字符序列 一个或多个r字符,不得包含闭序列 )d字符序列"
r字符 来自源字符集 (C++23 前)翻译字符集 (C++23 起)的字符