Flutter如何渲染含特殊字符(如')的文本?
在Flutter中渲染包含HTML实体(如')的文本
问题原因
'是HTML实体编码的单引号,Flutter的Text组件默认不会自动解析这类HTML实体,直接渲染只会显示原字符串而非对应的字符。你之前尝试的Runes和Utf8类针对的是Unicode码点或字节编码处理,和HTML实体解析不是一回事,所以没效果。
解决方案:使用HtmlUnescape解码
Dart的dart:convert库提供了HtmlUnescape类,可以直接解码常见的HTML实体,包括'、<、>等。
代码示例
import 'dart:convert'; import 'package:flutter/material.dart'; class MyTextWidget extends StatelessWidget { final String htmlEncodedText = "I'm a Flutter developer"; @override Widget build(BuildContext context) { // 解码HTML实体 String decodedText = HtmlUnescape().convert(htmlEncodedText); return Text(decodedText); } }
批量处理或动态文本
如果是从接口或本地存储获取的动态文本,只需要在传入Text组件前调用HtmlUnescape().convert()即可,无需额外复杂操作。
内容的提问来源于stack exchange,提问作者Mohammed Yussif
相关产品推荐
相关产品推荐

