网上看了好多说std::locale::global(std::locale("chs"));的,只是说在调用log4前加上即可。
事实上,是在log4初始化之前就要执行这句话,调用时执行已经晚了。
并且还有后续的问题,标准库里很多输入输出流式操作都和locale有关系,所以一定要记得恢复locale,不然会有意想不到的效果出来,呵呵,比如给你加个分隔符啥的。
再者我觉得用chs是不恰当的,应该用std::locale::global(std::locale(""));,使用默认代码页。