После boost.log
, sample.log был проанализирован как utf8.Теперь я хочу писать в windows.936, но приведенный ниже код бесполезен.
void init_logging() {
...
std::string strCodePage = boost::locale::util::get_system_locale();//strCodePage is "zh_CN.windows-936"
std::locale loc = boost::locale::generator().generate(strCodePage);
sink->imbue(loc);
...
}
void test_wide_char_logging() {
...
const wchar_t national_chars[] = L"汉字";
BOOST_LOG(lg) << national_chars;
...
}
Например, "汉字"
в файле sample.log имеет значение 0xe6b189 0xe5ad97
, которое анализируется как utf8.ButЯ хочу, чтобы "汉字"
в файле sample.log был 0xbaba 0xd7d6
, который анализируется как windows-936 (аналогично GBK, GB2312).Не могли бы вы помочь мне?