立即注册
查看: 1274|回复: 1

[转载] 点阵字库字符显示错乱的分析与解决方法

已绑定手机
发表于 2021-8-5 16:31:49 | 显示全部楼层 |阅读模式 来自 广东省深圳市
在研究嵌入式产品多国语言(点阵字库)文字显示过程中,可能很多朋友遇到过字符显示错乱(显示错误或乱码)的问题。
错乱现象分2种:全部字符 和 部分(或个别)字符。

一、全部字符
全部字符显示错乱,可能原因有:数据问题、编码问题、程序问题。
1、数据问题
a、数据格式
不同的数据格式,解析方式不一,显示结果自然不一。如:检索方式、位深度、扫描方式、字节高低位等。
方法:更换支持的数据格式。
建议:定义文件结构,加个文件头,便于快速了解文件的基本信息,以及后期维护与扩展。
b、字库烧录是否正确
方法:读取字库数据对比原始文件。

2、编码问题
送显字符编码 与 字库编码 是否一致?
常用编码有 内码(如GB2312,GBK,JIS 等),utf8, utf16(分大小端),现在越来越多平台或系统都慢慢选用 Unicode编码字库,若字库编码是utf16,送显字符为内码或 utf8,则需要先转成 utf16,再显示;反之亦然。
方法:统一编码再显示,若需要编码转换,可参考开源库:libiconv。

3、程序问题
显示接口或流程问题。因为很多点阵字库文件格式,为了兼容与扩展,都有数据结构的概念。如:文件头,检索表,点阵数据等信息。
方法:参考文档,增加输出调试信息。
切记别为了赶工,把某些参数弄成常量方式,给后来者“埋雷”。

二、部分(或个别)字符
部分字符显示错乱, 可能原因有:字库缺少字符、字库烧录不完整、其它。
1、字库缺少字符
通常做字库,都是根据其语言生成对应的字符集编码字库,但是在使用过程中可能会遇到一些特殊符号。如:数学符号,音乐符号等。若字库不包含,则会显示不出或乱码。
方法:先确认显示错乱符号的编码,然后配合工具,核实字库是否已包含该符号?若已包含,则是其它原因,否则增加其点阵信息。

如果是 BDF 格式字库,可以用 BdfEditor 工具的查找功能,快速判断字符是否存在? 如下图示:
1.jpg
操作: 菜单 Search - Find  或 Ctrl+ F。
说明: 能找到,表示字符存在,否则表示字符不存在。   

2. 字库烧录不完整
如字库大小1M, 有可能只成功烧录了前面 800K ,后 200 K 可能由于越界丢失或被覆盖, 导致后 200K 的字符显示错乱。
只要不是空间问题,找出原因,就很好解决。

更多详细内容请下载附件查看
游客,如果您要查看本帖隐藏内容请回复

已绑定手机
发表于 2022-11-30 14:06:27 | 显示全部楼层 来自 上海市虹口区
看看更多内容
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表