使用 std::string 和 UTF8 似乎是一个相当复杂的问题,我找不到对做和不做的很好的解释。
如何在 C++ 中正确使用 UTF8?这是相当混乱的。
我找到boost::locale
并设置了全局语言环境:
std::locale::global(boost::locale::generator()(""));
但是,在此之后我需要考虑什么,我什么时候会遇到问题?从文件中写入/读取是否会按预期工作,字符串比较等...?
到目前为止,我知道以下几点:
std::regex
/boost::regex
将不起作用,需要转换为宽字符串并使用 wregex。boost::algorithm::to_upper
不行,需要用boost::locale::to_upper
除此之外我还需要注意什么?