gpt4 book ai didi

c++ - 尝试在 C++ 中打印时超出 Unicode 范围

转载 作者:行者123 更新时间:2023-11-30 01:49:34 24 4
gpt4 key购买 nike

我正在尝试在 C++ 中打印 Unicode 字符。我的 Unicode 字符是 Old Turkic,我有字体。当我使用一个字母的代码时,它会给我另一个字符。例如:

#include <iostream>
#include <string>
using namespace std;

int main()
{
string str = "\u10C00" // My character's unicode code.
cout << str << endl;
return 0;
}

这个片段给出了另一个字母的输出,在它的结尾处有一个 0。例如,它给了我这个(假设我想打印“Ö”字母):A0

但是当我从 ubuntu 中的字符映射应用程序复制并粘贴我的实际字母到我的源代码片段时,它给了我想要的东西。这里有什么问题?我的意思是,我想使用字符代码方式 "\u10C00",但它不能正常工作。我认为这个字符串太长,所以它使用前 6 个字符并在末尾弹出 0。我该如何解决这个问题?

最佳答案

转义后 /u 必须正好是 4 个十六进制字符。如果你需要更多,你应该使用/U。第二个变体需要 8 个字符。

示例:

"\u00D6"      // 'Ö' letter
"\u10C00" // incorrect escape code!
"\U00010C00" // your character

关于c++ - 尝试在 C++ 中打印时超出 Unicode 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28867645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com