修复Flutter中Unicode渲染的问题

12

我刚开始学习Flutter,成功地从服务器接收并解码了数据,但当我尝试在文本中显示它时,它显示如下:

在这里输入图片描述

用于显示文本的代码

import 'package:flutter/material.dart';
import 'package:sachchirashifal/model/serverdata.dart';

class RashiFalDetail extends StatelessWidget {
  Data rashi;

  RashiFalDetail({this.rashi});

  @override
  Widget build(BuildContext context) {
    return new Container(
      child: new Text(rashi.desc, style: new TextStyle(
        fontSize: 18.0,
        color: Colors.black
      ))
    );
  }
}

任何建议都将是伟大的,谢谢。


在真实设备上是一样的吗? - Günter Zöchbauer
不幸的是,我不得不说是的 @GünterZöchbauer - yubaraj poudel
3
建议提交一个问题(并提供 flutter doctor -v 命令的输出结果)。 - Günter Zöchbauer
1
请您提供一下手机上显示的文本,这样我就可以在我的设备上进行测试。 - Vinayak B
这段文本是否采用UTF8编码? - Günter Zöchbauer
显示剩余2条评论
2个回答

1
你的文本带有HTML标签,应该以HTML方式呈现/查看。 检查这个package。这应该解决你的印地语渲染问题。
注意:如果无法安装此软件包,请更新你的Flutter,因为此软件包非常新,并使用最新的Flutter构建。

这将删除HTML标记,但文本仍然像上面一样显示。 - yubaraj poudel
1
好的。你试过印地语字体了吗?下载并在pubspec.yaml中添加一个印地语字体,然后仅将该字体应用于印地语文本。让我知道结果如何! - Arnold Parge
我也尝试了使用印地语字体,但我猜问题出在文本小部件本身。 - yubaraj poudel
你尝试过其他印地语文本吗?可能实际文本格式不正确。 - Arnold Parge
我仍然遇到这个问题。有人能找到解决方案吗? - Isura Manchanayake
显示剩余2条评论

0

我遇到了同样的问题。 尝试将您的Unicode文本转换为Krutidev或任何本地的devnagri字体样式,并导入该字体。这将解决您的问题。

在您的资产中添加ttf格式的字体文件,并像这样加载到变量中

final ttf = await fontFromAssetBundle('Kruti-Regular.ttf');

然后调用文本小部件。

Text("xzke ", style: pw.TextStyle(font: ttf)

该文本小部件的输出为 ग्राम,而在正常的Unicode中显示为 在这张图片中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接