LVGL显示中文字体及其它语言文字详细笔记教程 您所在的位置:网站首页 汉字处理系统中的字库文件用来解决什么问题 LVGL显示中文字体及其它语言文字详细笔记教程

LVGL显示中文字体及其它语言文字详细笔记教程

2024-07-11 06:49| 来源: 网络整理| 查看: 265

        在前面几篇博客文章中,已经对LVGL的移植和使用进行了较为详细的介绍,在本文中将讲解如何在LVGL的控件中显示中文字体及其它语言字体。

LVGL在VScode中安装模拟器运行配置笔记教程_vscode lvgl-CSDN博客

LVGL移植到STM32 MCU平台详细经验笔记教程-CSDN博客

提醒:加入字库后,必须让工程代码处于UTF-8编码模式下,否则文字显示会出问题

1、LVGL自带汉字库CJK

        在LVGL的官方库中,其实已经内置了一个CJK中文字库:中日韩越统一表意文字(CJKV Unified Ideographs),目的是要把分别来自中文、日文、韩文中,本质相同、形状一样或稍异的表意文字(主要为汉字,但也有仿汉字如日本国字、韩国独有汉字)于ISO 10646及Unicode标准内赋予相同编码。越南文后来亦加入此计划,所以亦有“CJKV”的称呼。

        CJK库位于LVGL的路径下的src文件夹下的font子文件夹中:lv_font_simsun_16_cjk.c,这个文件中包含了日常使用的汉字数量有数千个。

        虽然该库日常使用的汉字数量有数千个,再加上生僻字,数量达到数万个,但缺少很多简体中文中经常使用的汉字,如“问”字。因此在使用之前,可以点击该字库,去查找是否能够满足项目场景中需要使用的汉字,如果不能满足,则需要进行下面开始的工作,即往LVGL库中添加汉字字库或其它语言的字库。

使用自带的CJK汉字库需要将lv_conf.h文件中的CJK字库宏定义开启,否则不能使用。

2、自定义LVGL汉字库

        除了使用LVGL系统自带的CJK汉字库外,还可以采取自定义汉字库的形式,这就需要我们准备这两个东西:字体文件和字体转换器。

        字体文件可以互联网上随便下载,如浏览器直接搜索:GB2312字体下载;如果使用LVGL官方的字体转换器,那么下载的字体文件必须是TTF/WOFF格式的。使用其它平台的字体转换器,则需要根据对应字体转换平台的要求进行下载。

        在本笔记教程中,直接搜索下载了GB2312楷体的ttf格式字体文件,字体文件下载打开后如下图所示。

在准备好字体文件后,可以直接进入LVGL官方的在线字体转换工具网站:Online font converter - TTF or WOFF fonts to C array | LVGLicon-default.png?t=N7T8https://lvgl.io/tools/fontconverter

        将LVGL文件加入到工程中时,如果需要使用生成的字体,需要将字体进行声明:

//LV_FONT_DECLARE(字体名); LV_FONT_DECLARE(lv_font_gb2312_regular_script_14); //样式中设置字体API接口: lv_obj_set_style_text_font(); //私有(本地)样式 lv_style_set_text_font(); //普通(共享)样式

自定义的中文字库加入到工程中,编译运行后的效果图如下图所示:

提醒:加入字库后,必须让工程代码处于UTF-8编码模式下,否则文字显示会出问题

如果是使用 MDK KEIL平台切换为UTF-8编码后,程序编译报错:error: #8: missing closing quote

在如下图所示的Misc Controls中添加:--locale=english ,即可解决上述的报错信息

3、Unicode编码表

        Unicode 是国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换

        Unicode 字符集的编码范围是 0x0000 - 0x10FFFF , 可以容纳一百多万个字符, 每个字符都有一个独一无二的编码,也即每个字符都有一个二进制数值和它对应,这里的二进制数值也叫 码点 , 比如:汉字 "中" 的 码点是 0x4E2D, 大写字母 A 的码点是 0x41。

Unicode官网可以查询具体的字符编码值:Unicode – The World Standard for Text and Emoji

汉字编码范围部分表:

字符Unicode分布表:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有