搜索
bottom↓
回复: 12

MDK使用UTF-8编码导致的问题。。

[复制链接]

出0入25汤圆

发表于 2013-8-10 09:02:46 | 显示全部楼层 |阅读模式

MDK默认使用ANSI编码,当在源文件中选中汉字或删除汉字会导致乱码,,从MDK文本编辑器拷贝代码粘贴到其他地方也会出现中文注释乱码。。
网上搜到的解决办法是:将编码改为GB2312,这样就没有上面的“半个汉字”乱码的问题了。。。可是又有了新的问题:设置的等宽字体无效,而且修改不了字体,代码排版非常不美观。。
针对这个问题网上给出的解决办法是:将所有源文件转换为UTF-8编码,这样即不会出现“半个汉字”的问题,而且可以使用等宽字体,

可是,这又引出了新的问题:当程序中使用汉字时,比如串口打印汉字、带GBK字库的LCD液晶显示汉字,由于原文件是UTF-8编码,产生的汉字编码就是UTF-8,在LCD屏或串口终端上显示乱码,效果如下:





C程序没法使用汉字,这是个更大的问题;本来打算把C源代码都转换成UTF-8,以后编程也都用UTF-8的,看来完全行不通啊。。。

其实最好的解决办法我觉得就是:把MDK的编码设置成GB2312,并且此时MDK能够使用等宽字体,,,可是偏偏此时MDK的等宽字体无效。。请问哪位大侠知道这个问题怎么解决吗???GB2312编码时怎么使等宽字体有效啊???

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-12-3 20:09:02 | 显示全部楼层
这位兄弟,你解决了没啊?

出0入0汤圆

发表于 2013-12-3 20:10:00 | 显示全部楼层
我最近把版本更新到了4.72A,汉字编码在重新打开工程后会出现乱码,乱码后,在彩屏上开始的时候可以显示正确,之后我多下载几次,就乱码了。

出0入0汤圆

发表于 2013-12-3 20:20:33 | 显示全部楼层
关注中,.....希望下面有方法解决

出0入0汤圆

发表于 2013-12-3 20:30:26 | 显示全部楼层
沙发。。期待大神的解决方案

出0入0汤圆

发表于 2013-12-3 21:08:00 | 显示全部楼层
研究了很久,只能期待后续版本来解决这个问题啦

出0入25汤圆

 楼主| 发表于 2013-12-3 21:19:32 | 显示全部楼层
RUANJI 发表于 2013-12-3 20:09
这位兄弟,你解决了没啊?


没解决啊,还是一直使用默认的ANSI编码,删除汉字的时候乱码只能小心点儿,至于往其他文件里面拷贝程序乱码就只能是拷贝前先把MDK的编码设置成GB2312,拷贝完之后再设置回ANSI编码

虽然很麻烦,可是也没想到更好的方法解决,只能等着MDK软件自己解决这个问题了。。

至于你提到的“汉字在工程里乱码,在彩屏上正常”我猜测会不会是你的汉字里面有半个的啊??我想你可以进入调试状态,用断点的方法看一下你的汉字被编译成的二进制数是否是你所期望的
比如,你的屏显示汉字的编码是GB2312,那么你看看你要发送的屏上的汉字编译成的二进制数和你在GB2312编码表里面查到的编码是不是一样的(比如,汉字“好”的GB2312编码是"\xba\xc3“,),,如果一样就不是编辑器的编码或编译器的编译的问题,如果不一样那就麻烦了。。

出0入0汤圆

发表于 2013-12-3 21:24:16 | 显示全部楼层
XIVN1987 发表于 2013-12-3 21:19
没解决啊,还是一直使用默认的ANSI编码,删除汉字的时候乱码只能小心点儿,至于往其他文件里面拷贝程序 ...



图来了。应该就是出现半个的,但是我删了重新写都没用。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入25汤圆

 楼主| 发表于 2013-12-3 21:40:38 | 显示全部楼层
RUANJI 发表于 2013-12-3 21:24
图来了。应该就是出现半个的,但是我删了重新写都没用。。


你看1楼的帖子,第二张图片,那里面不就是你这种情况吗??就是编辑器的编码选错了,选成UTF-8了,换成GB2312或ANSI就可以了。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-12-3 21:48:46 | 显示全部楼层
XIVN1987 发表于 2013-12-3 21:40
你看1楼的帖子,第二张图片,那里面不就是你这种情况吗??就是编辑器的编码选错了,选成UTF-8了,换成G ...

我已经改成ASIC编码格式了。就是不行。试了很多次了。

出0入25汤圆

 楼主| 发表于 2013-12-20 11:13:34 | 显示全部楼层
终于知道怎么解决了,分享一下:

编码用GB2312,这样就不会删除半个字了


字体用YaHei Consolas,这样GB2312编码下字体也可以美观


系统上可能没有YaHei Consolas这个字体,这样第二步中就没法设置这个字体了
此时需要自己安装YaHei Consolas字体,字体文件如下,字体安装方法大家就自己Google吧:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-4-25 14:30:20 | 显示全部楼层
雅黑显示代码真心难看

出0入0汤圆

发表于 2014-4-27 14:26:55 | 显示全部楼层
路过路过 帮楼主赞下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-10 17:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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