硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2020|回复: 10
收起左侧

[emWin] 串口接收的汉子是GBK编码,想用UTF8格式显示出来,咋办?(10楼已经提供案例下载)

[复制链接]

354

主题

2168

回帖

3235

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3235
发表于 2022-7-20 11:25:24 | 显示全部楼层 |阅读模式
emwin中标准生成的都是UTF8格式的字库,但是我串口接收的汉子是GBK编码的。
咋显示出来?
回复

使用道具 举报

3

主题

425

回帖

434

积分

高级会员

积分
434
发表于 2022-7-20 12:58:25 | 显示全部楼层
从fatfs的ffunicode.c文件里抠,static const WCHAR oem2uni936[]数组,ff_oem2uni()函数。
回复

使用道具 举报

42

主题

1022

回帖

1153

积分

至尊会员

积分
1153
发表于 2022-7-20 13:40:04 | 显示全部楼层
在自己的程序里面,把GBK转成UTF8啊
回复

使用道具 举报

354

主题

2168

回帖

3235

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3235
 楼主| 发表于 2022-7-20 14:31:11 | 显示全部楼层
ghslfgkkl88 发表于 2022-7-20 13:40
在自己的程序里面,把GBK转成UTF8啊

这个编码转换函数,咋做?
回复

使用道具 举报

354

主题

2168

回帖

3235

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3235
 楼主| 发表于 2022-7-20 15:01:14 | 显示全部楼层
本帖最后由 caicaptain2 于 2022-7-20 15:27 编辑
glory 发表于 2022-7-20 12:58
从fatfs的ffunicode.c文件里抠,static const WCHAR oem2uni936[]数组,ff_oem2uni()函数。

这个函数似乎可以用。 但是,要么更改fatfs的源文件,不利于后续更新升级。
要么,把这个函数copy出来,可惜一个编码转换表格就需要100KB的空间啊~~~~
回复

使用道具 举报

3

主题

425

回帖

434

积分

高级会员

积分
434
发表于 2022-7-20 19:10:10 | 显示全部楼层
本帖最后由 glory 于 2022-7-20 19:11 编辑

不用改吧,自己实现一个函数int str_oem2uni(const char oem[], char uni[]),在其中调用ff_oem2uni(xx,936)就可以了。ff_oem2uni()返回的unicode码,还需要编码为utf-8放在uni[]中。
回复

使用道具 举报

42

主题

1022

回帖

1153

积分

至尊会员

积分
1153
发表于 2022-7-21 09:50:13 | 显示全部楼层
caicaptain2 发表于 2022-7-20 14:31
这个编码转换函数,咋做?

你去找资料理解一下UTF8的编码规则就行了,理解之后无非就是把一个数据按规则转换成另一个数据,utf8编码很简单的。
回复

使用道具 举报

354

主题

2168

回帖

3235

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3235
 楼主| 发表于 2022-7-22 09:31:47 | 显示全部楼层
ghslfgkkl88 发表于 2022-7-21 09:50
你去找资料理解一下UTF8的编码规则就行了,理解之后无非就是把一个数据按规则转换成另一个数据,utf8编码 ...

百度了一些文档看,发现还是比较复杂得。 GBK需要先转unicode,再转utf8。fatfs里面的拿来用的话,需要增加一个100KB的转换表格,资源消耗大了。
考虑到非重要功能,还是放弃折腾了。等其他人做吧。
回复

使用道具 举报

29

主题

231

回帖

318

积分

高级会员

积分
318
发表于 2022-7-22 14:32:38 | 显示全部楼层
套马轩的汉子,套不住码
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115863
QQ
发表于 2022-7-23 00:34:35 | 显示全部楼层
花了点时间,找了下之前那个帖子,这个之前一个坛友分享过,此贴。

文件名通过FATFS从SD卡中读出来,用STemWIN显示不了中文,运用的是XBF字体,请各位
https://www.armbbs.cn/forum.php? ... 0236&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

354

主题

2168

回帖

3235

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3235
 楼主| 发表于 2022-7-25 11:25:45 | 显示全部楼层
eric2013 发表于 2022-7-23 00:34
花了点时间,找了下之前那个帖子,这个之前一个坛友分享过,此贴。

文件名通过FATFS从SD卡中读出来,用S ...

感谢! 能用。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-24 01:19 , Processed in 0.263079 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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