因此,我使用 API 来获取数据,它响应一个包含印地语字符的字符串。但是当我打印时response.body它显示如下(乱码)
现在我的模拟器屏幕上显示了相同的内容,但如果我复制粘贴印地语文本并渲染,那么它就可以工作:
\n\n\n\n两种场景的代码片段,即来自 API 响应的标题数据和正文中相同的字符串复制粘贴(并按预期工作):
\n\nListTile(\n dense: true,\n contentPadding: EdgeInsets.all(0),\n title: Text(\n data[\'testVersion\'][\'name\'] != null\n ? data[\'testVersion\'][\'name\']\n : \'NA\',\n style: TextStyle(\n fontFamily: \'NatoSansDevnagri\',\n fontWeight: FontWeight.w700,\n fontSize: 18,\n color: Colors.black),\n ),\n trailing: Text(data[\'testVersion\'][\'time\'] != null\n ? data[\'testVersion\'][\'time\']\n : \'NA\'),\n ),\n Text(\'Below string is copy pasted in text widget from swagger response\'),\n Text(\n ( \'\xe0\xa4\x87\xe0\xa4\xb8 \xe0\xa4\xaa\xe0\xa5\x87\xe0\xa4\xaa\xe0\xa4\xb0 \xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\x82 150 \xe0\xa4\xb5\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa5\x81\xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\xb7\xe0\xa5\x8d\xe0\xa4\xa0 \xe0\xa4\xac\xe0\xa4\xb9\xe0\xa5\x81\xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa4\xb2\xe0\xa5\x8d\xe0\xa4\xaa\xe0\xa5\x80\xe0\xa4\xaf \xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xb6\xe0\xa5\x8d\xe0\xa4\xa8 \xe0\xa4\xb9\xe0\xa5\x88\xe0\xa4\x82\xe0\xa5\xa4 \xe0\xa4\xaf\xe0\xa4\xb9 \xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xb6\xe0\xa5\x8d\xe0\xa4\xa8 \xe0\xa4\xaa\xe0\xa5\x81\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\xae\xe0\xa5\x8d\xe0\xa4\xa8\xe0\xa4\xb2\xe0\xa4\xbf\xe0\xa4\x96\xe0\xa4\xbf\xe0\xa4\xa4 \xe0\xa4\xaa\xe0\xa4\xbe\xe0\xa4\x82\xe0\xa4\x9a \xe0\xa4\x96\xe0\xa4\x82\xe0\xa4\xa1\xe0\xa5\x8b\xe0\xa4\x82 \xe0\xa4\xb8\xe0\xa5\x87 \xe0\xa4\xac\xe0\xa4\xa8\xe0\xa5\x80 \xe0\xa4\xb9\xe0\xa5\x88: \xe0\xa4\xa7\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xbe- I, 11, 111, IV \xe0\xa4\x94\xe0\xa4\xb0 30-30 \xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xb6\xe0\xa5\x8d\xe0\xa4\xa8 \xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xa4\xe0\xa5\x8d\xe0\xa4\xaf\xe0\xa5\x87\xe0\xa4\x95\xe0\xa5\xa4 \xe0\xa4\x89\xe0\xa4\xae\xe0\xa5\x8d\xe0\xa4\xae\xe0\xa5\x80\xe0\xa4\xa6\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\xb0 \xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xb8\xe0\xa4\xad\xe0\xa5\x80 \xe0\xa4\xb5\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\x97\xe0\xa5\x8b\xe0\xa4\x82 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xaf\xe0\xa4\xbe\xe0\xa4\xb8 \xe0\xa4\x95\xe0\xa4\xb0\xe0\xa4\xa8\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x8b\xe0\xa4\x97\xe0\xa4\xbe\xe0\xa5\xa4 \xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xa4\xe0\xa5\x8d\xe0\xa4\xaf\xe0\xa5\x87\xe0\xa4\x95 \xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xb6\xe0\xa5\x8d\xe0\xa4\xa8 \xe0\xa4\x8f\xe0\xa4\x95 \xe0\xa4\x85\xe0\xa4\x82\xe0\xa4\x95 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x88\xe0\xa5\xa4 \xe0\xa4\x97\xe0\xa4\xb2\xe0\xa4\xa4 \xe0\xa4\x89\xe0\xa4\xa4\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\xb0 \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\xb2\xe0\xa4\xbf\xe0\xa4\x8f \xe0\xa4\x95\xe0\xa5\x8b\xe0\xa4\x88 \xe0\xa4\xa8\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xbe\xe0\xa4\xa4\xe0\xa5\x8d\xe0\xa4\xae\xe0\xa4\x95 \xe0\xa4\x85\xe0\xa4\x82\xe0\xa4\x95\xe0\xa4\xa8 \xe0\xa4\xa8\xe0\xa4\xb9\xe0\xa5\x80\xe0\xa4\x82 \xe0\xa4\xb9\xe0\xa5\x88\'),\n ),\nRun Code Online (Sandbox Code Playgroud)\n\n那么,请帮我看看 api 响应怎么不起作用?
\n\n谢谢
\nSuk*_*khi 10
Dart 可能正在以字符集 Latin-1(而不是 utf-8)解码服务器响应主体。您可以将编码指定为:
http.Response response = await http.get('YOUR_API_ENDPOINT',headers: {'Content-Type': 'application/json'});
var responseJson = json.decode(utf8.decode(response.bodyBytes));
print(responseJson) // This should print Hindi characters in the Terminal
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3584 次 |
| 最近记录: |