使用STD :: WSTRING或WCHAR_T登录

Poco Logging with std::wstring or wchar_t

本文关键字:WCHAR 登录 STD WSTRING 使用      更新时间:2023-10-16

是否可以使用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 One?

POCO接口仅为UTF-8,因此您必须将字符串转换为UTF-8,然后再将其发送到Logger:

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

对于XML,请参见此处,但基本上是相同的 - 使用UTF -8。