一个人如何正确地为变音字母声明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
,例如:
;但非变音字母可以成功地解释为UTF-8: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 ++
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?的主要内容,如果未能解决你的问题,请参考以下文章