Tôi đọc một vài bài về thực hành tốt nhất cho chuỗi và mã hóa ký tự trong C++, nhưng tôi đang đấu tranh một chút với việc tìm cách tiếp cận mục đích chung có vẻ hợp lý và đơn giản. Tôi có thể xin ý kiến về những điều sau đây không? Tôi có khuynh hướng sử dụng UTF-8 và UTF-32, và để xác định cái gì đó như:Mã hóa ký tự và chuỗi ký tự trong C++
typedef std::string string8;
typedef std::basic_string<uint32_t> string32;
Lớp string8 sẽ được sử dụng cho UTF-8, và có một kiểu riêng biệt chỉ là một lời nhắc nhở về sự mã hóa . Một thay thế sẽ được cho string8 là một phân lớp của std :: string và để loại bỏ các phương pháp mà không phải là khá đúng cho UTF-8.
Lớp string32 sẽ được sử dụng cho UTF-32 khi kích thước ký tự cố định được mong muốn.
Hàm CPP UTF-8, utf8 :: utf8to32() và utf8 :: utf32to8() hoặc thậm chí các hàm bao bọc đơn giản hơn, sẽ được sử dụng để chuyển đổi giữa hai hàm.
Lưu ý rằng 'string8' vẫn là cùng loại với' std :: string'; nó chỉ có một cái tên khác. –
Các hàm 'std :: basic_string' * nào * phù hợp với UTF-8? – dalle
UTF-32 mua bạn trên wstring/Unicode là gì? btw Visual Studio định nghĩa 'u16string' và' u32string'. –