我阅读了一些关于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