使用std :: wstring或wchar_t进行Poco记录

时间:2018-02-23 10:34:49

标签: c++ poco-libraries wchar-t

是否可以使用Poco Logger记录std::wstring

就像在这个简短的例子中一样:

int main(int argc, char** argv)
{
    Logger& logger = Logger::get("Testlogger");
    std::wstring WStringMessage = L"Message as a WString";
    std::string StringMessage = "Message as a String";
    //logger.information(WStringMessage); //Did not compile because it only takes a String
    logger.information(StringMessage);


    system("PAUSE");
    return 0;
}

是否有可能的解决方案或我是否必须将每个std::wstring转换为std::string

其他Poco库中std::wstring支持如何支持XML?

1 个答案:

答案 0 :(得分:1)

Poco接口仅为utf-8,因此您必须先将字符串转换为utf-8,然后再将其发送到记录器:

std::string msg;
Poco::UnicodeConverter::convert(WStringMessage, msg);
logger.information(msg);

对于XML,请参阅here,但基本上recomendation是相同的 - 使用utf-8。