Tôi có một số câu hỏi trong việc cố gắng hiểu các mã hóa khác nhau.Câu hỏi mã hóa C/C++
Mã hóa mặc định cho chuỗi là gì?
char ascii[]= "Some text"; // This is plain ASCII right?
wchar_t utf[] = L"Some Text"; // Is this UTF-16? Or ASCII stored in wchar_t's?
MessageBoxW(NULL, L"Hello", L"HI", MB_OK); // What encodings are the 2 strings in?
Sau đó, làm cách nào để tạo chuỗi UTF-8? Nếu tôi muốn hiển thị các ký tự UTF-8 trong một MessageBox?
Câu hỏi của tôi chủ yếu hướng vào Windows bằng cách này, nhưng nếu khác với các hệ điều hành khác nhau mà tôi quan tâm.
C++ x11 thêm tiền tố 'u8' cho chuỗi ký tự UTF-8, ví dụ:' u8 "Hello World" ', tuy nhiên cho đến khi C++ x11 được chấp nhận bởi nhà cung cấp trình biên dịch C++, bạn sẽ chỉ phải mã hóa UTF -8 chuỗi bằng tay thay thế. Ví dụ, tại thời gian chạy bằng cách sử dụng 'WideCharToMultiByte()' với mã hoá 65001, hoặc tại thời gian biên dịch bằng cách sử dụng một 'char []' chữ có chứa các giá trị octet UTF-8. –