硬汉嵌入式论坛

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

[emWin] 新手上路,用UTF-8形式显示中文受挫

[复制链接]

7

主题

38

回帖

59

积分

初级会员

积分
59
发表于 2014-12-26 10:19:03 | 显示全部楼层 |阅读模式
     想在屏幕上显示中文,我先是用官方的字体转换工具取了模生成了相应的C文件,再将其转换成了utf-8的编码模式,然后将其加入工程,并且在主函数中调用了GUI_UC_SetEncodeUTF8();,接下来我使用GUI_DispString("周磊");来试图显示这俩字,但是没有成功,接着我又在资源表中这样用{ FRAMEWIN_CreateIndirect, "周磊", ID_FRAMEWIN_0, 0,0, 240, 320, 0, 0x0, 0 },也没有成功,请问各位大虾,我是在哪里错了呢?英文手册看来看去愣是没看出怎么做
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2014-12-26 10:46:25 | 显示全部楼层
注意你的C语言源文件也需要保存为UTF-8格式的。 使用notepad++转换

一般默认是ANSI格式或者GB2312的.
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-12-26 11:06:45 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:注意你的C语言源文件也需要保存为UTF-8格式的。 使用notepad++转换

一般默认是ANSI格式或者GB2312的. (2014-12-26 10:46)
我使用记事本打开该C文件然后另存为,这个时候默认的编码格式是ANSI,我改成了UTF-8格式保存,然后将这个文件加入了工程,是这样吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115717
QQ
发表于 2014-12-26 11:11:33 | 显示全部楼层

回 zhoulei 的帖子

zhoulei:我使用记事本打开该C文件然后另存为,这个时候默认的编码格式是ANSI,我改成了UTF-8格式保存,然后将这个文件加入了工程,是这样吗 (2014-12-26 11:06) 
可以的,没问题。
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2014-12-26 13:38:16 | 显示全部楼层

回 zhoulei 的帖子

zhoulei:我使用记事本打开该C文件然后另存为,这个时候默认的编码格式是ANSI,我改成了UTF-8格式保存,然后将这个文件加入了工程,是这样吗 (2014-12-26 11:06) 
是的,需要这么操作一下。
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-12-26 13:59:58 | 显示全部楼层

回 eric2013 的帖子

eric2013:可以的,没问题。 (2014-12-26 11:11)
出来的是乱码,主函数是这样写的     GUI_UC_SetEncodeUTF8();   GUI_SetFont(&GUI_Fontst16);   GUI_DispString("你好");,
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115717
QQ
发表于 2014-12-26 14:57:32 | 显示全部楼层

回 zhoulei 的帖子

zhoulei:出来的是乱码,主函数是这样写的     GUI_UC_SetEncodeUTF8();   GUI_SetFont(&GUI_Fontst16);   GUI_DispString("你好");, (2014-12-26 13:59) 
1. 保证你用的是STemWin软件包里面的Font Convert小软件。其它里面带的好多是评估板。
2. 保证你显示汉字的这个C文件的文件类型是UTF-8。
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-12-26 21:07:56 | 显示全部楼层

回 eric2013 的帖子

eric2013:1. 保证你用的是STemWin软件包里面的Font Convert小软件。其它里面带的好多是评估板。
2. 保证你显示汉字的这个C文件的文件类型是UTF-8。 (2014-12-26 14:57)
我是在该论坛下载的fontcover,并且换了一个,还是不行,在用记事本打开之后我另存为的时候修改成了UTF-8,为了确认它就是这个格式,我又用记事本打开了修改了的文件,显示的是utf-8格式,格式应该是正确的
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-12-26 21:14:48 | 显示全部楼层

回 eric2013 的帖子

eric2013:1. 保证你用的是STemWin软件包里面的Font Convert小软件。其它里面带的好多是评估板。
2. 保证你显示汉字的这个C文件的文件类型是UTF-8。 (2014-12-26 14:57)
亲,能把你用的转换器给我发一份吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115717
QQ
发表于 2014-12-26 22:08:56 | 显示全部楼层

回 zhoulei 的帖子

zhoulei:

亲,能把你用的转换器给我发一份吗?
我全部整理到这里了,你可以下载你需要的:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=377

1.png
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-12-27 11:37:08 | 显示全部楼层

回 eric2013 的帖子

eric2013:我全部整理到这里了,你可以下载你需要的:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=377


....... (2014-12-26 22:08)
亲,我下载了,发现这个是我以前用ucGUI的时候用的工具,emWin自带的转换工具不行吗?
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-12-27 11:42:31 | 显示全部楼层

回 eric2013 的帖子

eric2013:我全部整理到这里了,你可以下载你需要的:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=377


....... (2014-12-26 22:08)
对不起,我没往下看,找到了,呵呵
回复

使用道具 举报

7

主题

38

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2014-12-27 12:25:39 | 显示全部楼层
亲,下载了你提供的工具,瞬间就可以了,原来是软件的问题,瞬间心里的石头就落下了,多谢了,大虾
回复

使用道具 举报

268

主题

597

回帖

1401

积分

至尊会员

积分
1401
发表于 2016-5-11 09:17:39 | 显示全部楼层
一直搞不懂,为什么C文件还要保存为UTF-8格式的,
C文件不都是要被编译的么。。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115717
QQ
发表于 2016-5-11 11:43:38 | 显示全部楼层

回 jplzl10000 的帖子

jplzl10000:一直搞不懂,为什么C文件还要保存为UTF-8格式的,
C文件不都是要被编译的么。。。 (2016-05-11 09:17) 
主要是因为汉字的编码问题。
回复

使用道具 举报

268

主题

597

回帖

1401

积分

至尊会员

积分
1401
发表于 2016-5-11 15:34:20 | 显示全部楼层

回 eric2013 的帖子

eric2013:主要是因为汉字的编码问题。 (2016-05-11 11:43) 
这个在模拟器上能显示中文字么?
我刚试了下,用那个V5.30的版本里面的中文例程可以显示中文字。
但是不能用GUI_DispStringInRectWrap("是是是", &Rect, GUI_TA_HCENTER, GUI_WRAPMODE_WORD);这种直接写汉字的方式显示内容。只能是先把汉字用U2C工具转换成\\xe6\\x88\\x91\\xe6\\这样的字符串,然后才能显示成汉字。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115717
QQ
发表于 2016-5-12 09:47:18 | 显示全部楼层

回 jplzl10000 的帖子

jplzl10000:这个在模拟器上能显示中文字么?
我刚试了下,用那个V5.30的版本里面的中文例程可以显示中文字。
但是不能用GUI_DispStringInRectWrap("是是是", &Rect, GUI_TA_HCENTER, GUI_WRAPMODE_WORD);这种直接写汉字的方式显示内容。只能是先把汉字用U2C工具转换成\\xe6\\x88 .. (2016-05-11 15:34) 
在你开的这个帖子回复你了http://www.armbbs.cn/forum.php?mod=viewthread&tid=19223
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-13 19:26 , Processed in 0.398974 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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