Sự hiểu biết hiện tại của tôi về sự khác biệt giữa std::string
và std::wstring
chỉ đơn giản là loại bộ đệm; cụ thể là, char
và wchar_t
, tương ứng.std :: chuỗi, wstring, u16/32 làm rõ chuỗi
Tôi cũng đọc rằng hầu hết (nếu không phải tất cả) distro Linux sử dụng char
cho bất kỳ và tất cả các chuỗi, cả ASCII cũng như UTF, trong đó Windows là hệ điều hành chính sử dụng wchar_t
nữa.
Tuy nhiên, có một vài loại chuỗi khác mà tôi muốn đi thẳng vào đầu: u16string
và u32string
, là các chuỗi có bộ đệm 2 byte và 4 byte tương ứng.
Vì vậy, câu hỏi của tôi là thế này:
Trên nền tảng với sizeof(wchar_t) == 2
, là std::wstring
chức năng tương đương để std::u16string
, cũng như nền tảng với sizeof(wchar_t) == 4
và std::u32string
?
có một câu hỏi tương tự về SO về chuỗi/wstring [ở đây –
@FloreaMarian Không thực sự - câu hỏi đó là yêu cầu sự khác biệt giữa 'chuỗi 'và' wstring'. Tôi hỏi có hay không 'wstring' giống với' u16string' hoặc 'u32string' tùy thuộc vào kích thước của' wchar_t'. – Qix
xem http://utf8everywhere.org –