Flutter中含特殊字体字符的中文如何正常显示?
解决Flutter中Android端中文无法正常渲染的问题
针对你的问题,核心原因是fontFamilyFallback里配置的是iOS专属字体,Android系统无法识别,导致中文 fallback 失效。以下是具体解决方法:
添加Android支持的中文字体到 fallback 列表
Android默认的中文字体是Noto Sans SC,把它加入fontFamilyFallback的最前面,确保Android优先使用系统支持的中文字体:Text( '中文aaa111', style: TextStyle(fontFamilyFallback: ["Noto Sans SC", "PingFang SC", "Heiti SC"]), ),过滤干扰的特殊字符
如果特殊字符可能影响中文渲染逻辑,可以提前过滤掉非中文、英文、数字的字符,彻底排除干扰:final originalText = '中文aaa111'; // 只保留中文、英文、数字 final cleanedText = originalText.replaceAll(RegExp(r'[^\u4e00-\u9fa5a-zA-Z0-9]'), ''); Text( cleanedText, style: TextStyle(fontFamilyFallback: ["Noto Sans SC", "PingFang SC", "Heiti SC"]), ),验证系统字体兼容性
不同Android厂商可能有自定义字体,若Noto Sans SC不生效,可以尝试通用的无衬线字体sans-serif,它会自动匹配系统默认的中文字体:TextStyle(fontFamilyFallback: ["sans-serif", "PingFang SC", "Heiti SC"]),
内容的提问来源于stack exchange,提问作者yl2014
相关产品推荐
相关产品推荐

