欢迎来到泰骏兴电子,大家有问题可以直接联系管理员QQ:233619809单片机 QQ群:59194556 各位游客也可以注册玩玩,享受更多权益。温馨提示:本网站仅提供平台学习以及渠道,一切后果自行承担,还望广大用户提高自我意识,请不要轻易相信他人,请不要轻易相信他人,请不要轻易相信他人。为了更好的管理论坛工作,所以现在使用邮箱注册,如果以前的邮箱不能修改的,请联系管理员代为修改

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 68|回复: 0

LVGL不能显示中文

[复制链接]
发表于 2023-7-27 13:42:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在我们使用LVGL的时候,如果要显示中文,那就一定要注意了,因为有一个坑很容易被忽视掉


在做一项目的时候,要求显示点中文,但是发现程序也是很别人的一模一样了,但是还不能显示中文,如图:


程序的意思是:

创建一个便签
使用自定义字库
显示的位置是居中对齐的
显示的颜色是绿色
显示的内容是正点原子15


这样写没什么问题吧,一点问题都没有吧,如果下载到板子中去发现不显示中文只显示15如图:



只显示了一个15,

我们排查了所有问题,如果是都没发现问题的话,那么不烦试试下面的步骤,程序哪些什么都不用改,就是一个编码问题
使用记事本打开这个文件,文字显示这段这个,不是字库文件


我们可以看到右下角的编码格式是什么,是ANSI,我们只需要修改成UTF-8就可以了,选择另存为


然后然后这个ANSI修改成UTF-8




然后保存就可以了
这时候再打开文件就变成了UTF-8格式了


就是因为这个问题,困扰了小编整整一天,整整一天,整整一天

我们在MDK中创建我文件基本上都是ASIS格式的,而ASIS格式数据解释是:

ASIS (Ada Semantic Interface Specification) 是 Ada 编程语言的一种标准化接口规范。它定义了一种存储 Ada 源代码于语法树和语义信息的二进制格式,以及一组用于查询和访问这些信息的 API 接口。

ASIS 格式允许开发人员在编译 Ada 代码时,通过 ASIS 接口来获取和分析源代码的结构和各种语义信息。它提供了对 Ada 语言中的程序单元、标识符、类型、子程序、包、任务等各个部分的访问、查询和修改能力。

借助 ASIS 接口,开发人员可以编写分析工具、自动化工具和代码生成工具等,以帮助他们对 Ada 代码进行静态分析、重构、代码生成、性能优化等。

ASIS 规范由 Ada Semantic Interface Working Group (ASIWG)制定并管理,其主要目标是提供一种标准化的接口,使得 Ada 语言的工具开发和集成更加容易和可靠。




对于UTF-8的解释是:

UTF-8(Unicode Transformation Format-8)是一种用于编码 Unicode 字符的可变长度字符编码方案。Unicode 是一个统一的字符集,包含了几乎所有世界上使用的字符,每个字符都有一个唯一的编码值。

UTF-8 使用 8 位(即一个字节)作为基本的编码单元,根据字符的 Unicode 编码范围,使用不同长度的字节序列来表示字符。UTF-8 的编码规则如下:

  • 对于 ASCII 字符(Unicode 编码范围 U+0000 至 U+007F),使用单字节的编码,与 ASCII 编码保持兼容,保证向后兼容性。
  • 对于非 ASCII 字符,使用多字节的编码。使用了多字节的前缀来表示字节序列的长度,然后按照一定规则将 Unicode 编码值分布在这些字节中。

UTF-8 编码的主要特点和优势包括:

  • 向后兼容性:UTF-8 是对 ASCII 编码的一个扩展,ASCII 字符在 UTF-8 中仍然保持兼容性。这意味着以 UTF-8 编码存储的文本可以被正常解析和处理,而不需要特殊的转换和处理过程。

  • 节省存储空间:对于只有 ASCII 字符的文本,UTF-8 编码和 ASCII 编码是等价的,不会引入额外的空间开销。只有在需要表示非 ASCII 字符时,UTF-8 才使用多字节编码,这样可以有效节省存储空间。

  • 全球化支持:UTF-8 包含了几乎所有世界上使用的字符,可以表示各种语言、符号和表情等。这使得 UTF-8 成为一种广泛使用的字符编码方案,支持全球化的应用和数据交换。


由于 UTF-8 的广泛应用和优势,它成为了互联网中最常用的字符编码方式,被广泛用于编程语言、文件格式、网络协议等多个领域。




他们两个的区别在于:



ASIS 格式和 UTF-8 格式是完全不同的概念:

  • ASIS 格式是 Ada 编程语言的一种标准化接口规范,用于存储和访问 Ada 源代码的语法树和语义信息。它是为了支持开发人员对 Ada 代码进行静态分析、重构、代码生成等操作而设计的。ASIS 提供了一组 API 接口,用于查询和修改 Ada 代码的结构和各种语义信息。

  • UTF-8 格式是一种用于编码 Unicode 字符的可变长度字符编码方案。它是一种字符编码方式,用于表示几乎所有世界上使用的字符。UTF-8 使用 8 位作为基本的编码单元,根据字符的 Unicode 编码范围,使用不同长度的字节序列来表示字符。UTF-8 是一种广泛使用的字符编码方式,被用于编程语言、文件格式、网络协议等多个领域。


总结来说,ASIS 是一种接口规范,用于处理 Ada 源代码的语法树和语义信息,而 UTF-8 是一种字符编码方式,用于表示 Unicode 字符。它们属于完全不同的概念和应用领域。







高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|泰骏兴电子科技有限公司 ( 粤ICP备2023060260号-1 ) 单片机爱好者

GMT+8, 2025-10-31 17:19

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表