【LVGL(6)】显示中文设置,制作中文字库

官方文档链接

Fonts — LVGL documentationhttps://docs.lvgl.io/master/overview/font.html?highlight=lv_font_declare#LVGL官方提供了在线字体转换工具,可将字体文件转换为C文件。

Online Font Converter Convert TTF and WOFF fonts to C arrayhttps://lvgl.io/tools/fontconverter

LVGL转换的字体也可给其他的GUI系统使用。


首先要下载字体文件

百问网提供了一些开源免费可商用的字体。

显示中文 — 百问网LVGL中文教程文档 文档 (100ask.net)q

字体文件我们可以使用开源的字体或者自己制作出来,准备好了字体文件之后使用字体转换器即可转换成可以在lvgl上使用的字体格式。 


字符集编码范围

Unicode 是全球文字统一编码。它把世界上的各种文字的每一个字符指定唯一编码,实现跨语种、跨平台的应用。

中文用户最常接触的是汉字 Unicode 编码。中文字符数量巨大,日常使用的汉字数量有数千个,再加上生僻字,数量达到数万个。下面这个表格将中文字符集的 Unicode 编码范围列出:

字符集字数Unicode 编码
基本汉字20902字4E00-9FA5
基本汉字补充90字9FA6-9FFF
扩展A6592字3400-4DBF
扩展B42720字20000-2A6DF
扩展C4153字2A700-2B738
扩展D222字2B740-2B81D
扩展E5762字2B820-2CEA1
扩展F7473字2CEB0-2EBE0
扩展G4939字30000-3134A
康熙部首214字2F00-2FD5
部首扩展115字2E80-2EF3
兼容汉字477字F900-FAD9
兼容扩展542字2F800-2FA1D
PUA(GBK)部件81字E815-E86F
部件扩展452字E400-E5E8
PUA增补207字E600-E6CF
汉字笔画36字31C0-31E3
汉字结构12字2FF0-2FFB
汉语注音43字3105-312F
注音扩展22字31A0-31BA
1字3007

拉丁字母 Unicode 编码范围

基本拉丁字母共有95个字符,其中52个属于拉丁字母,剩下的43个属于基本字符。

有33个字符被定义为“ASCII 标点及符号”,有时也被称为“ASCII 特殊字符”。

简单总结:

字符集字数Unicode 编码
数字0-910字30-39
小写英文字母26字61-7a
大写英文字母26字41-5a
标点及符号32字20-2F 3A-40 5B-60 7B-7E
数字0-9: 0123456789
小写英文字母: abcdefghijklmnopqrstuvwxyz
大写英文字母: ABCDEFGHIJKLMNOPQRSTUVWXYZ
标点及符号: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

下面这个表格将基本拉丁字母字符集的 Unicode 编码范围列出:

代码显示十进制描述
U+0020&#032;空格
U+0021!&#033;叹号
U+0022"&#034;双引号
U+0023#&#035;井号
U+0024$&#036;价钱/货币符号
U+0025%&#037;百分比符号
U+0026&&#038;&
U+0027'&#039;引号
U+0028(&#040;左圆括号
U+0029)&#041;右圆括号
U+002A*&#042;星号
U+002B+&#043;加号
U+002C,&#044;逗号
U+002D-&#045;连字号/减号
U+002E.&#046;句号
U+002F/&#047;正斜杠
U+00300&#048;数字0
U+00311&#049;数字1
U+00322&#050;数字2
U+00333&#051;数字3
U+00344&#052;数字4
U+00355&#053;数字5
U+00366&#054;数字6
U+00377&#055;数字7
U+00388&#056;数字8
U+00399&#057;数字9
U+003A:&#058;冒号
U+003B;&#059;分号
U+003C<&#060;小于符号
U+003D=&#061;等于号
U+003E>&#062;大于符号
U+003F?&#063;问号
U+0040@&#064;英文“at”的简写符号
U+0041A&#065;拉丁字母A
U+0042B&#066;拉丁字母B
U+0043C&#067;拉丁字母C
U+0044D&#068;拉丁字母D
U+0045E&#069;拉丁字母E
U+0046F&#070;拉丁字母F
U+0047G&#071;拉丁字母G
U+0048H&#072;拉丁字母H
U+0049I&#073;拉丁字母I
U+004AJ&#074;拉丁字母J
U+004BK&#075;拉丁字母K
U+004CL&#076;拉丁字母L
U+004DM&#077;拉丁字母M
U+004EN&#078;拉丁字母N
U+004FO&#079;拉丁字母O
U+0050P&#080;拉丁字母P
U+0051Q&#081;拉丁字母Q
U+0052R&#082;拉丁字母R
U+0053S&#083;拉丁字母S
U+0054T&#084;拉丁字母T
U+0055U&#085;拉丁字母U
U+0056V&#086;拉丁字母V
U+0057W&#087;拉丁字母W
U+0058X&#088;拉丁字母X
U+0059Y&#089;拉丁字母Y
U+005AZ&#090;拉丁字母Z
U+005B[&#091;左方括号
U+005C\&#092;反斜杠
U+005D]&#093;右方括号
U+005E^&#094;抑扬(重音)符号
U+005F_&#095;下划线
U+0060`&#096;重音符
U+0061a&#097;拉丁字母a
U+0062b&#098;拉丁字母b
U+0063c&#099;拉丁字母c
U+0064d&#100;拉丁字母d
U+0065e&#101;拉丁字母e
U+0066f&#102;拉丁字母f
U+0067g&#103;拉丁字母g
U+0068h&#104;拉丁字母h
U+0069i&#105;拉丁字母i
U+006Aj&#106;拉丁字母j
U+006Bk&#107;拉丁字母k
U+006Cl&#108;拉丁字母l
U+006Dm&#109;拉丁字母m
U+006En&#110;拉丁字母n
U+006Fo&#111;拉丁字母o
U+0070p&#112;拉丁字母p
U+0071q&#113;拉丁字母q
U+0072r&#114;拉丁字母r
U+0073s&#115;拉丁字母s
U+0074t&#116;拉丁字母t
U+0075u&#117;拉丁字母u
U+0076v&#118;拉丁字母v
U+0077w&#119;拉丁字母w
U+0078x&#120;拉丁字母x
U+0079y&#121;拉丁字母y
U+007Az&#122;拉丁字母z
U+007B{&#123;左花括号
U+007C|&#124;竖线
U+007D}&#125;右花括号
U+007E~&#126;波浪纹

ASCII表

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符:

Bin(二进制)Oct(八进制)Dec(十进制)Hex(十六进制)缩写/字符解释
0000 00000000x00NUL(null)空字符
0000 00010110x01SOH(start of headline)标题开始
0000 00100220x02STX (start of text)正文开始
0000 00110330x03ETX (end of text)正文结束
0000 01000440x04EOT (end of transmission)传输结束
0000 01010550x05ENQ (enquiry)请求
0000 01100660x06ACK (acknowledge)收到通知
0000 01110770x07BEL (bell)响铃
0000 100001080x08BS (backspace)退格
0000 100101190x09HT (horizontal tab)水平制表符
0000 1010012100x0ALF (NL line feed, new line)换行键
0000 1011013110x0BVT (vertical tab)垂直制表符
0000 1100014120x0CFF (NP form feed, new page)换页键
0000 1101015130x0DCR (carriage return)回车键
0000 1110016140x0ESO (shift out)不用切换
0000 1111017150x0FSI (shift in)启用切换
0001 0000020160x10DLE (data link escape)数据链路转义
0001 0001021170x11DC1 (device control 1)设备控制1
0001 0010022180x12DC2 (device control 2)设备控制2
0001 0011023190x13DC3 (device control 3)设备控制3
0001 0100024200x14DC4 (device control 4)设备控制4
0001 0101025210x15NAK (negative acknowledge)拒绝接收
0001 0110026220x16SYN (synchronous idle)同步空闲
0001 0111027230x17ETB (end of trans. block)结束传输块
0001 1000030240x18CAN (cancel)取消
0001 1001031250x19EM (end of medium)媒介结束
0001 1010032260x1ASUB (substitute)代替
0001 1011033270x1BESC (escape)换码(溢出)
0001 1100034280x1CFS (file separator)文件分隔符
0001 1101035290x1DGS (group separator)分组符
0001 1110036300x1ERS (record separator)记录分隔符
0001 1111037310x1FUS (unit separator)单元分隔符
0010 0000040320x20(space)空格
0010 0001041330x21!叹号
0010 0010042340x22"双引号
0010 0011043350x23#井号
0010 0100044360x24$美元符
0010 0101045370x25%百分号
0010 0110046380x26&和号
0010 0111047390x27'闭单引号
0010 1000050400x28(开括号
0010 1001051410x29)闭括号
0010 1010052420x2A*星号
0010 1011053430x2B+加号
0010 1100054440x2C,逗号
0010 1101055450x2D-减号/破折号
0010 1110056460x2E.句号
0010 1111057470x2F/斜杠
0011 0000060480x300字符0
0011 0001061490x311字符1
0011 0010062500x322字符2
0011 0011063510x333字符3
0011 0100064520x344字符4
0011 0101065530x355字符5
0011 0110066540x366字符6
0011 0111067550x377字符7
0011 1000070560x388字符8
0011 1001071570x399字符9
0011 1010072580x3A:冒号
0011 1011073590x3B;分号
0011 1100074600x3C<小于
0011 1101075610x3D=等号
0011 1110076620x3E>大于
0011 1111077630x3F?问号
0100 00000100640x40@电子邮件符号
0100 00010101650x41A大写字母A
0100 00100102660x42B大写字母B
0100 00110103670x43C大写字母C
0100 01000104680x44D大写字母D
0100 01010105690x45E大写字母E
0100 01100106700x46F大写字母F
0100 01110107710x47G大写字母G
0100 10000110720x48H大写字母H
0100 10010111730x49I大写字母I
010010100112740x4AJ大写字母J
0100 10110113750x4BK大写字母K
0100 11000114760x4CL大写字母L
0100 11010115770x4DM大写字母M
0100 11100116780x4EN大写字母N
0100 11110117790x4FO大写字母O
0101 00000120800x50P大写字母P
0101 00010121810x51Q大写字母Q
0101 00100122820x52R大写字母R
0101 00110123830x53S大写字母S
0101 01000124840x54T大写字母T
0101 01010125850x55U大写字母U
0101 01100126860x56V大写字母V
0101 01110127870x57W大写字母W
0101 10000130880x58X大写字母X
0101 10010131890x59Y大写字母Y
0101 10100132900x5AZ大写字母Z
0101 10110133910x5B[开方括号
0101 11000134920x5C\反斜杠
0101 11010135930x5D]闭方括号
0101 11100136940x5E^脱字符
0101 11110137950x5F_下划线
0110 00000140960x60`开单引号
0110 00010141970x61a小写字母a
0110 00100142980x62b小写字母b
0110 00110143990x63c小写字母c
0110 010001441000x64d小写字母d
0110 010101451010x65e小写字母e
0110 011001461020x66f小写字母f
0110 011101471030x67g小写字母g
0110 100001501040x68h小写字母h
0110 100101511050x69i小写字母i
0110 101001521060x6Aj小写字母j
0110 101101531070x6Bk小写字母k
0110 110001541080x6Cl小写字母l
0110 110101551090x6Dm小写字母m
0110 111001561100x6En小写字母n
0110 111101571110x6Fo小写字母o
0111 000001601120x70p小写字母p
0111 000101611130x71q小写字母q
0111 001001621140x72r小写字母r
0111 001101631150x73s小写字母s
0111 010001641160x74t小写字母t
0111 010101651170x75u小写字母u
0111 011001661180x76v小写字母v
0111 011101671190x77w小写字母w
0111 100001701200x78x小写字母x
0111 100101711210x79y小写字母y
0111 101001721220x7Az小写字母z
0111 101101731230x7B{开花括号
0111 110001741240x7C|垂线
0111 110101751250x7D}闭花括号
0111 111001761260x7E~波浪号
0111 111101771270x7FDEL (delete)删除

字符转换工具使用

中文翻译参考:


LVGL添加新字体

需要将字体C文件包含在LVGL项目中!

在文件中声明字体

LV_FONT_DECLARE(my_font_name);    //官方文档给定这个
extern lv_font_t my_font_name;

要使字体全局可用(如内置字体),请将它们添加到lv_conf.h 的 LV_FONT_CUSTOM_DECLARE

在样式中设置字体

lv_style_set_text_font(&style_obj, &my_font_name);	// 普通(共享)样式
lv_obj_set_style_text_font(label, &my_font_name, 0);	// 私有(本地)样式

还有一点:utf-8是基于unicode编码的一种节约字节的编码。


今天也需要加油鸭!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值