Ich versuche, das chinesische Schriftzeichen 中
mit den Typen wchar_t
, char16_t
und char32_t
, ohne Erfolg (live example)Ich versuche, ein chinesisches Zeichen mit den Typen wchar_t, char16_t und char32_t, ohne Erfolg zu drucken.
#include <iostream>
int main()
{
char x[] = "中"; // Chinese character with unicode point U+4E2D
char y[] = u8"中";
wchar_t z = L'中';
char16_t b = u'\u4e2d';
char32_t a = U'\U00004e2d';
std::cout << x << '\n'; // Ok
std::cout << y << '\n'; // Ok
std::wcout << z << '\n'; // ??
std::cout << a << '\n'; // prints the decimal number (20013) corresponding to the unicode point U+4E2D
std::cout << b << '\n'; // " " "
}
std :: wcout nicht funktioniert, wenn Sie versuchen, Text zu schreiben, die nicht in Ihrem Standard-Gebietsschema dargestellt werden können. – WorldSEnder
C++ hat keine verwendbare Unicode-Unterstützung. Wenn Sie eine (nicht triviale) Unicode-Behandlung benötigen, verwenden Sie eine dedizierte Bibliothek wie [ICU] (http://site.icu-project.org/). (Ja, Sie können etwas mit 'std :: string' auf Nicht-Windows und' wstring' auf Windows machen, aber meh). –
@BaummitAugen Es scheint mit UTF-8 zu arbeiten –