【一篇文章搞定】LVGL显示中文+解决keil下LVGL无法正常显示中文及error:#8:missing closing quote问题

LVGL显示中文

进入lvgl中文文档:显示中文 — LVGL 文档 (100ask.net) 

下载字体zip文件,解压得到一个.otf文件

进入LVGL的字体转换网站   Font Converter — LVGL

1.点击Browse指定.otf文件即可

2.range不用管

3.为了节省内存在Symbols中输入自己要使用的文字即可,而不是包含整个字库

4.点击Submit获得c文件

测试代码 

LV_FONT_DECLARE(lv_font_Chinese_SiYuan_Blod_28)    
ui_Menu_HeartBlood_Label = lv_label_create(lv_scr_act());
lv_style_init(&ui_Menu_HeartBlood_Label_style);
lv_style_set_text_font(&ui_Menu_HeartBlood_Label_style, &lv_font_Chinese_SiYuan_Blod_28);
lv_style_set_text_color(&ui_Menu_HeartBlood_Label_style, lv_color_hex(0x000000));
lv_obj_add_style(ui_Menu_HeartBlood_Label, &ui_Menu_HeartBlood_Label_style, LV_PART_MAIN);
lv_obj_align(ui_Menu_HeartBlood_Label, LV_ALIGN_CENTER, 0, 60);
lv_label_set_text(ui_Menu_HeartBlood_Label, "心率血氧");

解决keil下LVGL无法正常显示中文及error:#8:missing closing quote问题

当我按照上面的步骤进行后,发现无法正常显示中文,只显示了一个框。在网上查阅了资料,很多人都在说可能是编码格式的问题,让我将文件和keil的编码格式改为UTF-8,但都不好使,最后通过以下方式解决了问题。

keil的编码格式 

并没有改为UTF-8格式,而是GB2312格式,所以这一步我认为并没有太需要注意的。

字库c文件的编码格式

编码格式在lvgl字体转换网站转换后默认就是UTF-8格式,网上说可以参数改为带有BOM格式的UTF-8编码格式,但是我修改后发现并没有什么卵用。

解决办法 

在Misc Controls中加入 --locale=english 编译解决问题 

在 Keil 编译器中,--locale=english 是编译器的一个命令行选项,用于指定编译器输出的语言为英文。这个选项影响编译器、链接器、以及其他工具生成的消息(如警告、错误、信息等)语言。如果未指定此选项,编译器可能会根据系统的区域设置自动选择本地语言。

通过使用 --locale=english,可以确保编译输出始终为英文,这在以下情况下尤为有用:

  1. 多人协作:确保团队中每个人看到的一致的英文消息,避免因语言差异导致的理解错误。

  2. 查找帮助:很多编译器错误和警告的解决方案在线上有很多英文资料,使用英文消息更容易搜索解决方案。

  3. 调试国际化问题:有时需要确认编译器消息是否因为区域设置不同而产生差异。

在编译器设置或命令行中,添加如下选项来强制输出为英文:这样,所有编译器消息都会使用英文显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值