Tôi đang cố gắng để in chữ Hán 中
sử dụng các loại wchar_t
, char16_t
và char32_t
, nhưng không thành công (live example)Tôi đang cố gắng in một ký tự Trung Quốc bằng cách sử dụng các loại wchar_t, char16_t và char32_t, để không có kết quả.
#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 không hoạt động nếu bạn đang cố gắng để viết văn bản mà không thể được đại diện trong miền địa phương mặc định của bạn. – WorldSEnder
C++ không hỗ trợ Unicode có thể sử dụng được. Nếu bạn cần xử lý Unicode (không tầm thường), hãy sử dụng một thư viện chuyên dụng như [ICU] (http://site.icu-project.org/). (Có, bạn có thể nhận được một cái gì đó được thực hiện với 'std :: string' trên không Windows và' wstring' trên Windows, nhưng meh). –
@BaummitAugen Dường như nó hoạt động với UTF-8 –