我从我的 api 获取下一个字符串
\n"\xc3\x83 \xc3\x83\xc2\xa9 \xc3\x83\xc2\xad \xc3\x83\xc2\xb3 \xc3\x83\xc2\xba \xc3\x83\xc2\xbc \xc3\x83\xc2\xb1 \\uD83D\\uDE00\\uD83D\\uDE03\\uD83D\\uDE04\\uD83D\\uDE01\\uD83D\\uDE06\\uD83D\\uDE05"\nRun Code Online (Sandbox Code Playgroud)\n来自 json 格式的响应
\n{\n 'apiText': "\xc3\x83 \xc3\x83\xc2\xa9 \xc3\x83\xc2\xad \xc3\x83\xc2\xb3 \xc3\x83\xc2\xba \xc3\x83\xc2\xbc \xc3\x83\xc2\xb1 \\uD83D\\uDE00\\uD83D\\uDE03\\uD83D\\uDE04\\uD83D\\uDE01\\uD83D\\uDE06\\uD83D\\uDE05",\n 'otherInfo': 'etc.',\n .\n .\n .\n}\nRun Code Online (Sandbox Code Playgroud)\n它包含\xc3\x83 \xc3\x83\xc2\xa9 \xc3\x83\xc2\xad \xc3\x83\xc2\xb3 \xc3\x83\xc2\xba \xc3\x83\xc2\xbc \xc3\x83\xc2\xb1未正确编码的重音并且包含表情符号\\uD83D\\uDE00\\uD83D\\uDE03\\uD83D\\uDE04\\uD83D\\uDE01\\uD83D\\uDE06\\uD83D\\uDE05
到目前为止我已经尝试过
\nvar json = jsonDecode(response.body)\nString apiText = json['apiText'];\nList<int> bytes = apiText.codeUnits;\ncomentario = utf8.decode(bytes);\nRun Code Online (Sandbox Code Playgroud)\n但产生一个
\n[ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: FormatException: Invalid UTF-8 byte (at offset 21)
如何获得带有重音符号和表情符号的正确文本?
\n我实现了WidgetsBindingObserver,但该应用程序从未发送到后台,因此它无法识别AppLifecycleState.resumed
这是当前的实现
@override
void didChangeAppLifecycleState(AppLifecycleState state) async {
print('\n\ndidChangeAppLifecycleState');
switch (state) {
case AppLifecycleState.resumed:
print('\n\nresumed');
_mymethod();
break;
case AppLifecycleState.inactive:
print('\n\ninactive');
break;
case AppLifecycleState.paused:
print('\n\npaused');
break;
case AppLifecycleState.detached:
print('\n\ndetached');
break;
}
}
Run Code Online (Sandbox Code Playgroud)
模拟我在android中做下一个的过程
WidgetsBindingObserver 返回应用程序时,我可以在屏幕上看到我的小部件,该应用程序不会重新启动,但控制台上没有任何打印件出现,不会发生事件print('\n\ndidChangeAppLifecycleState');并且_mymethod();永远不会执行