我正在尝试使用 deepl API 通过 libcurl 发出发布请求。我不知道如何处理收到的宽字符数据。
有一个这样的函数,但它只能处理char*类型数据。
size_t write_callback(void *contents, size_t size, size_t nmemb, void *userp) {
size_t realsize = size * nmemb;
printf("%.*s", (int)realsize, (char *)contents);
return realsize;
}
我怎样才能用函数实现这一点。
C99 标准定义了一对用于 wchar_t 和 char(“多字节”)字符串之间转换的函数。您正在寻找 wcstombs (C99 7.20.8.2)(“宽字符字符串到多字节字符串”)。
幸运的是,POSIX 在这里反映了 C99 标准 - 与 C 标准不同,阅读 POSIX 是免费的。请参阅 wcstombs(3)。