【发布时间】:2021-02-22 15:52:34
【问题描述】:
我有一个使用 Java 和 REST 构建的后端,并且在 Android 中使用 Flutter 有这个应用程序,但是当我尝试显示这些字符时出现错误。
例如,最终作品显示的不是“Piña”:
这是我尝试使用 dart:convert 的代码的一部分,但不是很成功:
import 'dart:convert';
class ProductsProvider {
Future<List<Product>> loadProducts(
String urlMiddleware, Client client) async {
final url = '$urlMiddleware${Constants().getProducts}${client.code}';
final response = await http.get(url,
headers: <String, String>{'authorization': Constants().basicAuth});
print('Url');
print(url);
json.decode(utf8.decode(response.bodyBytes));
final List<Product> products = productFromJson(response.body).toList();
return products;
}
顺便说一句,这是我的模特:
import 'dart:convert';
import 'package:pil_store/models/EnumValues.dart';
List<Product> productFromJson(String str) => List<Product>.from(json.decode(utf8.decode(str.runes.toList())).map((x) => Product.fromJson(x)));
String productToJson(List<Product> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
我这个Flutter技术还不算老,怎么才能显示正确的字符呢?
【问题讨论】:
-
您是否能够(使用调试器或类似工具)逐个字符地告诉我们应该说
Piña的字符串由什么组成?这可能与从服务器/数据库到应用程序的过程中的编码问题有关。 -
@nanofarad 我刚刚上传了一小段代码,解释了我想用 dart:convert 做什么。也许你能帮我解决这个问题?
-
你能分享一下你的回复样本吗