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

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

[复制链接]
天英 提问时间:2018-5-16 16:26 /
本帖最后由 tianyingkeji 于 2018-5-16 18:25 编辑

TIM截图20180516162626.png
实在搞不清楚了,这是什么鬼东西。

我需要强调下哦,不是文件里中文显示乱码,我的文档编码为UTF8.大家也看到了文件里的中文显示的很好的。我说的乱码的意思是,编译转换后对应的编码值。例如:“好”对应
0xBAC3。编译后,却不是BAC3了。


收藏 评论22 发布时间:2018-5-16 16:26

举报

22个回答
Angel_YY_ST 回答时间:2018-5-16 20:35:38
提示: 作者被禁止或删除 内容自动屏蔽
浅色调123 回答时间:2018-9-27 10:18:12
楼主我在开发OLED屏幕的时候,遇见了一模一样的问题。keil界面显示正常,但是编译后就乱码了。
问题是因为代码使用 notepad++新建的,而且新建格式默认是utf8。不管怎么在KEIL里面调gb2312配置是解决不了的,解决的根本就是重新新建一个 gb2312格式的.c文件添加到keil工程就行了。另外一定要注意notep++默认的文本类型是utf8的不是GB2312大坑
wenyangzeng 回答时间:2018-5-16 16:58:30
楼主的字串有半个中文字符,未显示出来所致。

评分

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

查看全部评分

andey 回答时间:2018-5-16 17:08:42
提示: 作者被禁止或删除 内容自动屏蔽
andey 回答时间:2018-5-16 17:16:15
提示: 作者被禁止或删除 内容自动屏蔽
大陶 回答时间:2018-5-16 17:32:15
MDK的 设置不同 可能导致不能显示 看一下 MDK的Configuration---Editor---ANSI还是UTF8?

评分

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

查看全部评分

七哥 回答时间:2018-5-16 17:56:19
本帖最后由 toofree 于 2018-5-16 17:57 编辑

要搞清楚MDK下字符的编码格式,以及文件的编码格式。如果只是在编译报告信息显示有乱码,可以不管。

傲游截图20180516175304.png

傲游截图20180516175530.png

评分

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

查看全部评分

天英 回答时间:2018-5-16 18:19:44
toofree 发表于 2018-5-16 17:56
要搞清楚MDK下字符的编码格式,以及文件的编码格式。如果只是在编译报告信息显示有乱码,可以不管。

应该不是你说的这种乱码的,因为你看到了C文件里并没有乱码。而是编译转换产生了错误,也就是说每个中文对应一个编码,而这编码错误了。像你说的这种乱码错误,只是文件显示的乱码。不过,还是多谢你的解答。
天英 回答时间:2018-5-16 18:21:41
wenyangzeng 发表于 2018-5-16 16:58
楼主的字串有半个中文字符,未显示出来所致。

这种现象我也想到了,我把它删除,重新写入文字。还是编译转换的时候出现了错误,
七哥 回答时间:2018-5-16 21:00:01
tianyingkeji 发表于 2018-5-16 18:19
应该不是你说的这种乱码的,因为你看到了C文件里并没有乱码。而是编译转换产生了错误,也就是说每个中文 ...

没有发现有错误呀,即使有错误,也不是中文产生的错误。
估计是个警告,可能说你的数据类型不一致。
这时只要前门加强制类型转换就能消除警告。

七哥 回答时间:2018-5-16 21:02:41
tianyingkeji 发表于 2018-5-16 18:19
应该不是你说的这种乱码的,因为你看到了C文件里并没有乱码。而是编译转换产生了错误,也就是说每个中文 ...

把你的现象描述清楚些,源码工程放上来。
你遇到的问题,并不是你认为的问题。
七哥 回答时间: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

查看全部评分

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

评分

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

查看全部评分

12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版