你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

MDK5中文编译乱码,不是显示乱码哦。

[复制链接]
tianyingkeji 提问时间:2018-5-16 16:26 /
阅读主题, 点击返回1楼
收藏 评论22 发布时间:2018-5-16 16:26
22个回答
toofree 回答时间:2018-5-16 21:02:41
tianyingkeji 发表于 2018-5-16 18:19
应该不是你说的这种乱码的,因为你看到了C文件里并没有乱码。而是编译转换产生了错误,也就是说每个中文 ...

把你的现象描述清楚些,源码工程放上来。
你遇到的问题,并不是你认为的问题。
toofree 回答时间:2018-5-16 21:09:00
本帖最后由 toofree 于 2018-5-16 21:56 编辑

UTF8是unicode的一种体现形式,unicode汉字编码跟机内码,GB2312不一样。
用ultraedit打开,十六进制方式看一下。
看一下下面两张图有什么不同

傲游截图20180516215443.jpg

傲游截图20180516215528.jpg

测试工程附上:
Hello_arm_ANSI.rar (348.55 KB, 下载次数: 0)
feixiang20 回答时间:2018-5-17 00:16:16
你就先把编码格式换了看看情形,换个显示方式看看,也可以去参考【MDK5怎样设置,汉字就不会乱码】【Keil中的中文字体乱码解决方法】等资料看看

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

jjbboox 回答时间:2018-5-17 08:56:09
就是因为你的代码是UTF-8,所以才会这样的。你改成ANSI或者GB2312重新打字应该就会正常了。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

tianyingkeji 回答时间:2018-5-28 14:43:44
感谢大家的支持与热心,最近有点忙,没有及时回帖,问题已经解决,因为我的个人喜欢用eclipse写程序,而eclipse的文本编码是默认跟操作系统一致,而MDK默认确是ansi,所以在我尝试用notepad++单个文件修改编码类型,无效。后来统一修改编码格式后,问题解决。小问题也闹心啊。谢谢大家。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3 结贴奖励

查看全部评分

tianyingkeji 回答时间:2018-5-28 14:50:00
感谢大家大力支持,与鼎沸的回复。现在问题已经决绝了。我感觉这个问题只有做LCD开发,并且使用中文UI界面的朋友们会碰到。
TIM截图20180517104340.png
stm1024 回答时间:2018-5-28 17:10:13
这个问题一时半会儿也不好回答,但是你试试这样呢?就是定义一个char buffer,然后把GB2312汉字对应的字节丢进去,然后将这个buffer作为函数的最后一个变量,再编译试试看是什么效果?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

tianyingkeji 回答时间:2018-6-7 12:05:11
stm1024 发表于 2018-5-28 17:10
这个问题一时半会儿也不好回答,但是你试试这样呢?就是定义一个char buffer,然后把GB2312汉字对应的字节 ...

多谢。
浅色调123 回答时间:2018-9-27 10:18:12
楼主我在开发OLED屏幕的时候,遇见了一模一样的问题。keil界面显示正常,但是编译后就乱码了。
问题是因为代码使用 notepad++新建的,而且新建格式默认是utf8。不管怎么在KEIL里面调gb2312配置是解决不了的,解决的根本就是重新新建一个 gb2312格式的.c文件添加到keil工程就行了。另外一定要注意notep++默认的文本类型是utf8的不是GB2312大坑
stm1024 回答时间:2018-9-27 11:39:52
编译器又不是编辑器

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版