一个人如何正确地为变音字母声明char8_t?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个人如何正确地为变音字母声明char8_t?相关的知识,希望对你有一定的参考价值。

我尝试使用新的char8_t类型初始化一些变音拉丁字母

constexpr char8_t french_letter_A_1 = 'À';//does not function properly

但是,Visual Studio 2019建议我以下“通用字符名称“ \ u(名称)”表示的字符无法在当前代码页中表示]],并且该字符无法正确显示;如果我尝试将字符明确声明为u8,例如:

constexpr char8_t french_letter_A_2 = u8'Â';//has error

甚至会引发错误“一个UTF-8字符文字值不能占用一个以上的代码单元”]

;但非变音字母可以成功地解释为UTF-8:
constexpr char8_t french_letter_A_0 = u8'A';//but ASCII letters are fine

我想知道如何使用Visual C ++

正确声明UTF-8字符,或者我误解了char8_t的概念,而应该改用其他名称?

编辑:我了解到char8_t不支持那些非ASCII字符。我应该改用哪种字符类型?

我尝试使用新的char8_t类型初始化一些变音拉丁字母:constexpr char8_t french_letter_A_1 ='À'; //不能正常工作。但是,Visual Studio 2019建议我使用...

答案
UTF-8是Unicode代码点的编码。在UTF-8中,一个代码点被分解为一个或多个称为UTF-8代码单元的“八位位组”(8位字)。表示UTF-8代码单元的C ++ 20类型为char8_t

以上是关于一个人如何正确地为变音字母声明char8_t?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中使用 UTF-8 和 Unicode? C++20 char8_t 有多大?

如何正确地为字符串“数组”动态分配内存

如何正确地为 <audio> 提供数据?

python基础语法

嵌套的结构数组 - 我如何正确地为结构成员赋值?

如何正确地为 Django 的用户模型添加权限?