单片机要显示英文和多国文字,字库问题怎么解决?
做出口产品的嵌入式开发者必看:多语言样章、拉丁文与西里尔文语言对照,以及标准字库芯片和自定义字库芯片两条解决路线。
适合:做出口产品、界面要显示外文或多国语言的嵌入式开发者。先讲清外文显示为什么比想象中麻烦,再看两条现成的路。
一、外文显示,麻烦在显示之前
产品做到出海这一步,才发现界面文字是个工程问题:
- 字符集从哪来? 英文 ASCII 简单,但俄文的西里尔字母、越南文的声调附加符号、日韩的假名和谚文,各有各的字符范围。要显示一种语言,先得搞清楚它到底有哪些字符;
- 字体覆盖全不全? 随便找个字体文件取模,很可能缺字符——屏幕上某个位置永远是一个空白方框,客户验收时才发现;
- 编码怎么对应? 中文用 GBK 或 UTF-8,外文又是另一套编码分布,多国语言混排稍不留神就是乱码。
这些事和产品功能毫无关系,纯粹是"为了把字显示出来"付出的成本。自己一项项搞定,几天就没了。
二、先有个概念:字库芯片
之前没接触过这类器件的话,一句话介绍:字库芯片就是把整套字模数据烧进一颗专用小芯片(常见 SOP8 封装,SPI 接口),单片机发编码、读字模,自己的 Flash 和文件系统都不用动。
做这类芯片最久的是高通字库(GENITOP),字库覆盖全球 180+ 国家语言。用字库芯片解决外文显示,有两条路。
三、多国语言包括哪些?先看文字体系
很多人看到"拉丁文""西里尔文"会以为这是两种具体语言。其实它们是两组文字体系:拉丁文不只是英语,西里尔文也不只是俄语。同一个文字体系下,可以对应很多语言和国家。
下表按高通标准字库规格书中的文字体系整理。国家/地区为主要使用地举例,不是完整国家清单;具体型号包含哪些字符集和字号,仍以对应型号规格书为准。
| 文字体系 | 包含哪些语言(举例) | 主要国家/地区(举例) |
|---|---|---|
| 拉丁文 Latin | 英、法、德、西、葡、意、荷、越南、印尼、马来、土耳其、波兰、捷克等 | 欧洲、美洲、大洋洲,以及越南、印尼、马来西亚和部分非洲国家 |
| 西里尔文 Cyrillic | 俄、乌克兰、白俄罗斯、保加利亚、塞尔维亚、马其顿、哈萨克、吉尔吉斯、塔吉克、蒙古等 | 俄罗斯、乌克兰、白俄罗斯、保加利亚、塞尔维亚、北马其顿、哈萨克斯坦、吉尔吉斯斯坦、塔吉克斯坦、蒙古国等 |
| 希腊文 Greek | 希腊语 | 希腊、塞浦路斯 |
| 阿拉伯文 Arabic | 阿拉伯语,以及使用阿拉伯字母的波斯语、乌尔都语、普什图语等 | 沙特、阿联酋、埃及、摩洛哥、伊朗、巴基斯坦、阿富汗等 |
| 希伯来文 Hebrew | 希伯来语 | 以色列 |
| 泰文 Thai | 泰语 | 泰国 |
| 天城体 Devanagari | 印地语等 | 印度等 |
| 高棉文 Khmer | 高棉语 | 柬埔寨 |
| 中日韩方块字 | 中文、日文、韩文 | 中国、日本、韩国等 |
拉丁文里面,具体有哪些?
- 英语、法语、西班牙语、葡萄牙语:英语对应英国、美国、加拿大、澳大利亚等;法语对应法国、比利时、加拿大等;西班牙语对应西班牙及拉丁美洲多国;葡萄牙语对应葡萄牙、巴西等;
- 德语、荷兰语、意大利语:德语对应德国、奥地利、瑞士等,荷兰语对应荷兰、苏里南等,意大利语对应意大利等;
- 北欧和波罗的海语言:丹麦语、挪威语、瑞典语、冰岛语、芬兰语、爱沙尼亚语、拉脱维亚语、立陶宛语等;
- 中欧和南欧语言:波兰语、捷克语、斯洛伐克语、匈牙利语、罗马尼亚语、斯洛文尼亚语、克罗地亚语、土耳其语、马耳他语、阿尔巴尼亚语等;
- 东南亚和非洲部分语言:越南语、马来语、印尼语、塔加洛语、斯瓦希里语等。
所以"拉丁文字库"要解决的并不只是 A–Z,还包括 é、ñ、ü、ç、ł、č,以及越南文的大量声调附加符号。
西里尔文里面,具体有哪些?
- 东斯拉夫语言:俄语、乌克兰语、白俄罗斯语;
- 南部斯拉夫语言:保加利亚语、塞尔维亚语、马其顿语等;
- 中亚和蒙古地区语言:哈萨克语、吉尔吉斯语、塔吉克语、蒙古语等,部分规格书语言表还列入阿塞拜疆语、土库曼语、乌兹别克语等。
这里有个容易踩的坑:语言名相同,不代表使用的字母一定相同。例如塞尔维亚语同时存在西里尔字母和拉丁字母写法,阿塞拜疆语、乌兹别克语、土库曼语也有拉丁字母写法。选型时不要只报"我要乌兹别克语",最好直接拿客户的实际界面文案核对字符。
四、多语言字库样章:真实渲染
下面统一用"设备已就绪"这句设备状态文案,展示高通字库的实际字形。样张由 GT-HMI Designer2 实机渲染而成,不是浏览器字体或排版示意图,显示环境为 480×320 客户区,字库版本为 0.0.28。拉丁主样张采用 32px 矢量 4bit 灰度(拉丁文方头,同一字库组承接 ASCII 与扩展拉丁),西里尔文、希腊文及中日韩样张采用 24px、4bit 灰度黑体。
拉丁文字库实渲样张:英语、德语、法语、西班牙语、葡萄牙语、越南语;GT-HMI Designer2 实机渲染,480×320,32px 矢量 4bit 灰度,字库 0.0.28
西里尔文、希腊文及中日韩字库实渲样张:俄语、乌克兰语、保加利亚语、希腊语、简体中文、日语、韩语;GT-HMI Designer2 实机渲染,480×320,24px 4bit 灰度黑体,字库 0.0.28
拉丁文显示并不只有 A–Z:德语的 ä、法语的 ç、越南语的复合声调,都在基本字母之外。多语言混排时,引擎按字符范围把基本字母和扩展字符路由到相应字库档;在 GT-HMI Designer2 里配多语言字库组时,让 ASCII 与扩展拉丁使用同一套字形设计(单字库组导出),基本字母和扩展字母的字面才协调。
正式项目建议用目标字库、目标引擎版本和客户的真实界面文案做一次核对,确认字符覆盖、附加符号位置和整体显示效果。
以上样张展示的是字库资源在 GT-HMI Designer2 中的实际渲染效果,并非标准字库芯片直接驱动屏幕的实拍。阿拉伯文、希伯来文还涉及从右到左排版,泰文、印地文等涉及上下组合或合体。有字符只是第一步,复杂文字还要配对应的排版规则。
五、路线一:标准字库芯片——上板即用的现成方案
字库出厂固化好,买回来焊上板、跑通 SPI 就能显示。外文方向常用的型号举例:
| 型号 / 字库类型 | 字库内容 | 封装 / 字号 | 适合场景 |
|---|---|---|---|
| GT30L24A3W(点阵 · 最畅销) | 12/16/24 点中文 + 繁体(BIG5 全集)+ 日韩 + 外文(含 ISO8859) | DFN8 / SOP8-B | 多语言产品的经典之选,量产最广 |
| GT5DL32A3W(点阵 · 多字号) | 16/24/32 点中文(GBK)+ 繁体 + 日韩 + 外文(Unicode+Codepage) | DFN8 4×3 / SOP8-B | 同屏需要多种字号的界面,一款覆盖 16/24/32 点 |
| GT5HL24A2W(灰度 · 新产品) | 16/24 点 4bit 灰度黑体;GBK/BIG5 中文、日韩文及 180 国外文,含拉丁、西里尔、希腊、希伯来、阿拉伯、泰文等 | SOP8-B;16/24 点 | 重视小屏显示质感:边缘更细腻、字形更美观 |
| GT5SLAD3BFA(矢量 · 多国语言) | 中文宋/仿宋/楷/黑矢量 + 12 套 ASCII;拉丁、日韩、西里尔、希腊、希伯来、阿拉伯、泰文矢量 | 标准版 16–128 点;DFN8 4×3 / SOP8-B | 高分辨率界面:字号任意缩放,并支持灰度 |
这四款分别对应最畅销点阵、多字号点阵、灰度新品和多语言矢量四个方向。具体语言、字体、字号和封装仍以对应型号规格书为准。完整型号上百款,官网有按语言、字号、封装筛选的选型表,两分钟能定位到型号。
这条路的优势:最快上手,零配置,型号选定就能量产。 局限:字库是固定组合——选定型号后,语言、字体、字号都不能改。部分标准型号未必覆盖所需小语种,芯片内已有的字库内容也不会随高通字库资源更新而自动升级。以后客户要加一种语言,得看有没有对应型号,没有就得换芯片、重新打样。
六、路线二:自定义字库芯片——自由组合,持续更新
另一条路是用高通的自定义字库芯片:芯片出厂是"空"的存储载体(16Mb–128Mb,SPI 接口),装什么语言由你自己配:
- 打开官方免费软件 GT-HMI Designer2,进入字库选配;
- 按需要组合语种、字体和字号——常用外文都有预设标准字符集,一键导入;需求特殊就自定义导入,按语言、按字符范围挑,每个字库占多少容量界面里看得清清楚楚;
- 中文和外文放同一个字库组,导出编译成一个
resource.bin; - 烧录器烧进芯片,上板就能用。多国语言混排的编码对应,官方字库已经处理好了。
GT-HMI Designer2 多语言选配实操:中英日韩各选一个 16 点阵字符集,总容量 609.41KB 一目了然
一个细节:同一个字库组里是同一字号的字符集,界面要几个字号就配几组,导出时软件按组编译,操作上只是多几步勾选。
这条路的价值不只是“以后能加语言”:首先是可以自由组合不同语种、字体和字号,某些标准字库芯片没有覆盖的小语种,也可以在高通提供的字库资源中另行选配;其次是芯片和字库资源解耦,高通后续发布新字库、新字体或更新版本时,可以在工程中接入并重新烧录,不必等待一颗“带新版字库的新标准芯片”。
出口产品很少一步到位——先在东南亚卖,后来加俄语区;说明书印三国语言,客户说界面最好八国。自定义芯片把这类变化收敛为调整字库组合 + 更新资源 + 重新烧录,硬件和采购都不动。具体可选语种、字体和容量,以 GT-HMI Designer2 当前字库资源及目标芯片容量为准。
七、两条路怎么选
- 语言组合确定不变,且目标标准型号已经覆盖所需语种、字体和字号 → 标准字库芯片,最快最省事;
- 需要自由组合语种、字体和字号,标准型号缺少目标小语种,或希望持续接入高通新字库资源 → 自定义字库芯片,一次硬件到位,后续通过更新资源和重新烧录扩展。
八、顺手送一个工具
开发中查某个字符的编码,GT-HMI Designer2 内置了编码查询工具,GB2312 / GBK / GB18030 / Unicode / UTF-8 / BIG5 互查;官网也有在线版,不装软件也能用。
编码查询实操:输入文字选「单独」模式,每个字的 UTF-8 / GB18030 / GBK / GB2312 / Unicode / BIG5 编码一次看全
高通(GENITOP)始于 1992 年,深耕汉字信息处理与嵌入式 GUI 技术,字库覆盖全球 180+ 国家语言。
语言随时加、硬件不用换——用 GT-HMI Designer2 免费配一份自己的多语言字库。
前往查看