gpt4 book ai didi

c++ - Qt 正在获取对 YouTube api 的请求,不支持 utf8 字符

转载 作者:太空宇宙 更新时间:2023-11-04 12:12:05 25 4
gpt4 key购买 nike

我用 Qt 做简单的 get 请求,但 returend 响应是 gibrich ,这部分不是英语。当我通过浏览器调用相同的请求时,一切都很好,我得到了正确的响应我在这里缺少什么?这是代码和 YouTube Api 调用。
API:
https://gdata.youtube.com/feeds/api/videos/cDholGGVc1M?v=2&alt=jsonc (或 json)

这是我在Qt中调用它的方式

 QUrl getUrl("https://gdata.youtube.com/feeds/api/videos/cDholGGVc1M?v=2&alt=jsonc");
QNetworkRequest request;
request.setRawHeader("User-Agent", USER_AGENT.toUtf8());
request.setRawHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
request.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
request.setRawHeader("Accept-Language", "en-us,en;q=0.5");
request.setRawHeader("Connection", "Keep-Alive");
request.setUrl(getUrl);
QEventLoop loop;
//This tell the request only to cuntinue after all response is done
QNetworkReply *reply = networkManager->get(request);
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
//return response
QByteArray data=reply->readAll();
ApiResponse.append(data); // HERE IS ALL GIBRISH

最佳答案

这是一个编码问题。使用它来获取 Gibrich 的 UTF-8 表示:

ApiResponse.append(QString::fromUtf8(data));

而不是将数据直接带入您的 ApiResponse。

关于c++ - Qt 正在获取对 YouTube api 的请求,不支持 utf8 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9350137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com