0

我试图打印出我从 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 curl 响应?

4

2 回答 2

0

您是否尝试在 cout 之前将其存储在std::wstring(而不是 std::string)中?

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

于 2012-07-12T01:46:00.317 回答
0

尝试调用SetConsoleOutputCP(65001),然后使用WriteConsole()orWriteConsoleOutput()代替std::cout.

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

于 2012-07-12T01:49:19.147 回答