OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3969|回复: 7

汉字显示

[复制链接]

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2017-6-9
在线时间
7 小时
发表于 2018-1-31 00:11:23 | 显示全部楼层 |阅读模式
1金钱
我想知道GBK编码和cc936.c中的OEM有什么关系,而Unicode编码又是什么,我理解Unicode编码的就是,Windows系统对汉字的编码形式,keil编程的时候,我们在程序语句中输入的汉字就被windows转换成汉字对应的Unicode编码,然后存进了单片机,这个好像我理解的没错吧,然后找汉字的字库的时候,再将Unicode码对应的GBK码找到,进而去字库里找对应的点阵文件进行显示,那原子哥,你的视频里讲汉字显示的时候,说用汉字的GBK编码去查找汉字字库中对应的点阵信息,那么对我们直接有用的就是汉字的GBK码,但是那两个大数组中的OEM是什么,能解释一下吗?谢谢!还有就是Unicode转所谓的OEM一个表不就行了吗?为什么还是两个表,就是正转换和你转换不就行了 吗?为什么还整两个?咋回事呢

最佳答案

查看完整内容[请看2#楼]

cc936是为了支持长文件名,中文的长文件名! 长文件名是用unicode编码的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-1-31 00:11:24 | 显示全部楼层
cc936是为了支持长文件名,中文的长文件名! 长文件名是用unicode编码的。
回复

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2017-6-9
在线时间
7 小时
 楼主| 发表于 2018-2-9 09:04:49 | 显示全部楼层
估计原子哥也好过年回家了吧
回复

使用道具 举报

7

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2017-5-20
在线时间
96 小时
发表于 2018-2-9 10:01:22 | 显示全部楼层
你是说 oem2uni 与 uni2oem 吧。看名字就知道了。他们是刚好相反的。2就是to的意思。
这是为了支持长文件名。
但是单纯的显示汉字本身不需要CC936里面的东西的。你可以跟踪一下汉字显示的代码看看。如Show_Str();
回复

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2017-6-9
在线时间
7 小时
 楼主| 发表于 2018-2-9 11:05:22 | 显示全部楼层
林光华ing 发表于 2018-2-9 10:01
你是说 oem2uni 与 uni2oem 吧。看名字就知道了。他们是刚好相反的。2就是to的意思。
这是为了支持长文件 ...

ff_convert()函数用来把Unicode和GBK之间进行转换。因为文件系统的文件名默认存储方式为Unicode编码,而我们编译器甚至是电脑,用的中文码为GBK比如说,现在我要把一个文件名读出来显示到TFT上,当我们读完文件名以后,文件名实际上是由Unicode编码的,这时候,我们就需要找到这些Unicode码对应的GBK码,因为我们的字库是按照GBK编码的,所以需要用到ff_convert()函数里面的Unicode转GBK转换表来转换。

我看了这段话后明白了,只有在读取或写文件名字的时候才会涉及到Unicode码和GBK码之间的相互转换问题,而单单显示汉字是不需要转换的,电脑识别汉字的编码本来就是汉字的GBK编码 ,只是文件系统采用的Unicode码而已!是吧。
回复

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2017-6-9
在线时间
7 小时
 楼主| 发表于 2018-2-9 11:06:36 | 显示全部楼层
所以说我刚开始理解的就有问题!!!!!!!!!!
回复

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2017-6-9
在线时间
7 小时
 楼主| 发表于 2018-2-9 11:18:03 | 显示全部楼层
林光华ing 发表于 2018-2-9 10:01
你是说 oem2uni 与 uni2oem 吧。看名字就知道了。他们是刚好相反的。2就是to的意思。
这是为了支持长文件 ...

也就是说,单单的去显示汉字的话就不需要那两个对照表了,直接用字库就可以了?
回复

使用道具 举报

7

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
711
金钱
711
注册时间
2017-5-20
在线时间
96 小时
发表于 2018-2-9 11:23:46 | 显示全部楼层
burg 发表于 2018-2-9 11:18
也就是说,单单的去显示汉字的话就不需要那两个对照表了,直接用字库就可以了?

是的,直接算出点阵地址。就可以绘制汉字了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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