こちらを利用して、以下のような
JSON
ファイルをHTTPサーバーから取得するコードを書きました。
import "package:http/http.dart" as http;
Future<String> fetch(String url) async {
final response = await http.get(Uri.parse(url)));
return response.body;
しかし、ローカルで立てたHTTPサーバーからの取得では大丈夫でしたが、S3からの取得では文字化けしてしまいました。
どうやら、Content-Type
に charset=utf8
が含まれていないと、 LATIN-1
と解釈されてしまうようです。
そのため、bodyBytes
を取得した上で、明示的にUTF-8に変換を行うことで対応できます。
import "dart:convert";
import "package:http/http.dart" as http;
Future<String> fetch(String url) async {
final response = await http.get(Uri.parse(url)));
return utf8.decode(response.bodyBytes);