http请求中的Dart字符编码

Dart character encoding in http request

刚刚学习 Flutter 和 运行 在尝试调用 API 时遇到此问题:

final response = await http.get(
  Uri.https(apiBaseUrl, apiBaseEndpoint + "/tasks"),
  headers: {
    "Authorization": "Bearer " + apiKey,
  },
);

print(response.body);

我的部分回复包含 Ä°ftar,应该是 İftar。我想这是一些编码问题? curl 以正确的字符返回给我回复。

基本上:这是文本编码问题吗?如果是这样,我该如何解决我的请求?

好的,在对 http docs 进行更多挖掘之后,我意识到需要更改的不是我提出请求的方式,而是我处理响应的方式。我在做

final decodedJson = json.decode(response.body);

我应该做的:

final decodedJson = json.decode(utf8.decode(response.bodyBytes));

这已经解决了我的问题!