| 
在我们使用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 字符。它们属于完全不同的概念和应用领域。 
 
 
 
 
 
 |