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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版