如何在 char 变量中存储特殊的 unicode 字符 (c++)

How can I store special unicode characters in a char variable (c++)

我正在编写一个c++程序,其中我需要存储一个特殊ASCII字符的值(eg:-'①','╳','▲'等)在字符变量中,如 :

#include <iostream>
using namespace std;

int main(void)
{
    char a = '①';//here...
    cout << a;

    return 0;
}

...它会抛出错误

warning: multi-character character constant [-Wmultichar]

warning: overflow in implicit constant conversion [-Woverflow]

有什么办法吗???

你必须使用宽字符数据类型,因为它可以存储 ASCII 以及 C++ 中的非 ASCII 字符,用 wchar_t 表示。

#include<iostream>
using namespace std;

int main()
{
    wchar_t a = L'';
    wcout << a;
    return 0;
}

如上所示,笑脸字符存储在a中。由于它涉及宽字符,要将其显示到控制台,我必须使用 std::wcout。同样,std::wcinstd::cin 的宽字符替代项,std::wstringstd::string 的替代项。

L前缀用来表示宽字符和宽字符串。这里用来告诉编译器这是一个宽字符。