我閱讀了一些關於C++中字符串和字符編碼最佳實踐的文章,但是我正在努力尋找一種對我來說合理簡單和正確的通用方法。我可以就以下問題徵求意見嗎?我傾向於使用UTF-8和UTF-32,並定義是這樣的:C++中的字符串和字符編碼
typedef std::string string8;
typedef std::basic_string<uint32_t> string32;
的string8類將被用於UTF-8,和具有單獨的類型僅僅是一個編碼的催。另一種方法是將string8作爲std :: string的子類,並刪除UTF-8不完全正確的方法。
當需要固定字符大小時,string32類將用於UTF-32。
UTF-8 CPP函數utf8 :: utf8to32()和utf8 :: utf32to8()甚至更簡單的包裝函數將用於在兩者之間進行轉換。
請注意'string8'仍然與'std :: string'類型相同;它只是一個不同的名字。 – 2010-10-16 20:15:39
哪個'std :: basic_string'函數*對於UTF-8是正確的? – dalle 2010-10-16 20:20:34
UTF-32通過wstring/Unicode購買你什麼?順便說一句Visual Studio定義了'u16string'和'u32string'。 – 2010-10-16 20:31:04