Flutter:如何在我的应用程序中显示印地文字符?

Gau*_*mar 2 dart flutter

因此,我使用 API 来获取数据,它响应一个包含印地语字符的字符串。但是当我打印时response.body它显示如下(乱码)

\n\n

在此输入图像描述

\n\n

现在我的模拟器屏幕上显示了相同的内容,但如果我复制粘贴印地语文本并渲染,那么它就可以工作:

\n\n

在此输入图像描述

\n\n

两种场景的代码片段,即来自 API 响应的标题数据和正文中相同的字符串复制粘贴(并按预期工作):

\n\n
ListTile(\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                      ),\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么,请帮我看看 api 响应怎么不起作用?

\n\n

谢谢

\n

Suk*_*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)