有人可以解释以下example的工作原理吗?
我不明白如果不使用boost :: locale :: to_upper而不是boost :: to_upper,这是如何工作的?
boost :: to_upper会使用locale :: global吗?我认为常规的facet / locale东西不支持utf-8,因为它在字符基础上工作?
编辑:
gen(“UTF-8”)也有效吗?
此外,boost :: locale如何与boost :: regex一起使用,还是需要boost :: 32regex才能使用utf-8字符串吗?
答案 0 :(得分:2)
此示例中to_upper()
有两种用途:
to_upper("grüßen")
通过使用声明using namespace boost::locale
解析。据说这会产生正确的结果,即GRÜSSEN
。boost::to_upper_copy(std::string("grüßen"))
这似乎是你所称的“boost :: to_upper”版本。据说这会产生不正确的结果,即GRÜßEN
。你的误解的根本原因似乎是你认为“boost :: to_upper”做了正确的事情,而它实际上意味着做错了。