在Windows命令提示符下打印libcurl响应

时间:2012-07-11 20:58:09

标签: c++ unicode cmd libcurl

我正在尝试打印出来自curl查询(UTF-8字符集)的答案,在执行查询后,我使用以下代码创建一个字符串:

size_t writeToString(char* ptr, size_t size, size_t nmemb, std::string* stringPtr) {
    stringPtr->append(ptr, nmemb*size);
    return size*nmemb;
}

在执行字符串的cout时,Unicode字符将显示为其代码(例如\ u0434)。我已经尝试将命令提示符的代码页更改为65001.是否可以在Windows命令提示符下打印出UTF-8卷曲响应?

2 个答案:

答案 0 :(得分:0)

你有没有尝试在cout之前将它存储在 std :: wstring (而不是std :: string)中?

这个问题可能有所帮助: UTF8 to/from wide char conversion in STL

答案 1 :(得分:0)

尝试拨打SetConsoleOutputCP(65001),然后使用WriteConsole()WriteConsoleOutput()代替std::cout

否则,将UTF-8数据解码为UTF-16,然后使用std::cout将其转换为Ansi。