是否有正确处理Unicode的STL字符串类?

Goz*_*Goz 13 c++ unicode stl unicode-string

我知道所有关于std :: string和std :: wstring但他们似乎并没有完全注意UTF-8和UTF-16的扩展字符编码(至少在Windows上).也不支持UTF-32.

那么有谁知道提供完整的UTF-8,UTF-16和UTF-32支持的跨平台直接替换类?

Jon*_*rdy 11

让我们不要忘记轻量级,非常用户友好,仅限标题的UTF-8库UTF8-CPP.不是直接替换,但可以很容易地与之结合使用std::string,并且没有外部依赖性.


Umm*_*mma 9

在C++ 0x中,有类std :: u32string和std :: u16string.GCC已经部分支持它们,因此您已经可以使用它们,但是对于unicode的流支持还没有在C++ 0x中完成Unicode支持.

  • @Goz嗯,不是一切都和你想象的一样好.VS2010支持unicode字符串,但它不支持unicode字符串文字.u"Hello"是UTF-16字符串文字,U"Hello"是UTF-32字面值.Visual Studio无法识别它们.而且正如我已经说过gcc不支持输入,输出流. (2认同)

Cat*_*lus 7

它不是STL,但如果你想在C++中使用正确的Unicode,那么你应该看看ICU.