【发布时间】:2019-03-11 16:53:22
【问题描述】:
我正在尝试在我的 C/C++ 程序中使用带有 libcurl 的 Google 翻译 API,但每当我翻译带有扩展 ASCII 的内容时,我都会得到一个糟糕的结果。例如,将“nuß”翻译成英语(德语中“nut”的意思)。注意 ß 是一个扩展的 ASCII 字符 (0xDF),你不需要 Unicode 来写它。
"nuß" → Chrome 中的英文
当我在 Chrome 中打开此 URL 时,它成功转换为“nut”: https://translate.googleapis.com/translate_a/single?client=gtx&ie=UTF-8&oe=UTF-8&sl=de&tl=en&dt=t&q=nuß
[[["nut","nuß",null,null,2]],null,"de"
"nuß" → 我的 C/C++ 程序中的英语
当我在 C/C++ 程序中使用相同的 URL 时,它会错误地转换为“nu?”
[[["nu?","nu?",null,null,0]],null,"de"
这是我的程序:
#include <iostream>
#define CURL_STATICLIB
#include "curl/curl.h"
int main() {
CURL *curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://translate.googleapis.com/translate_a/single?client=gtx&ie=UTF-8&oe=UTF-8&sl=de&tl=en&dt=t&q=nuß");
curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return 0;
}
如果我将 URL 的结尾更改为 nu%DF 而不是 nuß,也会发生同样的情况。
【问题讨论】:
标签: c++ c libcurl google-translation-api