在C++中使用UNICODE字符值

6

你如何在C++中使用Unicode? 我知道有wchar_twchar_t*,但我想知道如何仅使用Unicode值进行赋值,类似于将变量与ASCII值相等来赋值字符的方式:

char a = 92;

我正在使用MinGW编译器,如果有区别的话。


1
C++11支持Unicode字面量和类型。http://en.wikipedia.org/wiki/C%2B%2B11#New_string_literals - Pubby
2个回答

10

它可以非常简单,例如:

wchar_t a=L'a';
wchar_t hello_world[]=L"Hello World";

// Or if you really want it to be (old school) C++ and not C

std::wstring s(L"Hello World");

// Or if you want to (be bleeding edge and) use C++11

std::u16string s16(u"Hello World");
std::u32string s32(U"Hello World for the ∞ᵗʰ time");

3

完全相同的方式:

wchar_t a = 97;
wchar_t xi = 0x03be; // ξ

根据这份文档,http://unicode.org/charts/PDF/U2070.pdf, 上标(2)的编号为2071。这在整数中是多少? 将其从十六进制转换为整数仍然会导致崩溃。 - viraj
@viraj,冒昧指出,int告诉我们它是一个没有小数部分的数字。然而,你可能在谈论十进制数,将十六进制(基数16)转换为十进制数。 - Tommy Andersen
@viraj 那个文档中的数字是十六进制的,所以只需在前面加上“0x”,例如“0x2071”(这是一个上标“i”,而不是“2”)。 - James Kanze
0x2072及其后面的内容只会显示一个圆形方块。0x2071可以正常工作并显示上标i。 - viraj
我正在使用Win32静态控件来显示Unicode字符。 - viraj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接