我需要能够使用带有log4cxx的utf-8编码字符串.我可以使用std :: cout打印字符串(字符显示正确).使用log4cxx,即使用ConsoleAppender将字符串放入LOG4CXX_DEBUG()宏将输出“??”而不是特殊的角色.我找到了一个解决方案
LOG4CXX_DECODE_CHAR(logstring,str); LOG4CXX_DEBUG(logstring);
str是我的输入字符串,但这不起作用.任何人都知道这可能如何工作?我谷歌了一下,但我找不到任何有用的东西.
解决方法
您可以使用
setlocale(LC_CTYPE,"UTF-8");
仅设置字符编码,而不更改有关语言环境的任何其他信息.