在log4cxx中使用utf-8字符

arn*_*rne 7 c++ logging log4cxx

我需要能够使用带有log4cxx的utf-8编码字符串.我可以正常打印字符串std::cout(字符显示正确).使用log4cxx,即将字符串放入LOG4CXX_DEBUG()宏中,ConsoleAppender输出"??" 而不是特殊的角色.我找到了一个解决方案

LOG4CXX_DECODE_CHAR(logstring, str);
LOG4CXX_DEBUG(logstring);
Run Code Online (Sandbox Code Playgroud)

str我的输入字符串在哪里,但这不起作用.任何人都知道这可能如何工作?我谷歌了一下,但我找不到任何有用的东西.

Bri*_*ell 4

您可以使用

setlocale(LC_CTYPE, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

仅设置字符编码,而不更改有关区域设置的任何其他信息。