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

问题描述 投票:0回答:1

我尝试使用新的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建议我使用...

c++ visual-c++ utf-8 utf c++20
1个回答
0
投票
UTF-8是Unicode代码点的编码。在UTF-8中,一个代码点被分解为一个或多个称为UTF-8代码单元的“八位位组”(8位字)。表示UTF-8代码单元的C ++ 20类型为char8_t
© www.soinside.com 2019 - 2024. All rights reserved.