今天在移植程序的时候遇到了这个警告:warning: #870-D: invalid multibyte character sequence报错信息如图
刚开始以为事公司的内部软件导致此问题,排除之后重装Keil也未能解决,网上搜索到了一个办法:在文件中加入#pragma diag_suppress 870语句让编译器不输出 #870类型的警告,问题算是解决了,但是想想治标不治本,于是继续排查。
最后解决办法是在KEIL中将文件全选复制,打开文件所在路径
用文本编辑器打开此c文件,并将文件编码改为GB2312编码
修改完编码后会发现之前的中文变成乱码了(这个就是警告原因)
在此状态下全选此文件内容然后粘贴刚刚在Keil中复制的内容,保存,关闭文本编辑器,切回Keil,让Keil重新加载此文件
再重新进行编译操作,会发现没有警告信息了
问题解决。
想了想导致这个问题的原因大概是我的KEIL中设置的编码类型是GB2312类型,有可能前辈在写这个文件的时候用的是ANSI编码,然后在这个ANSI编码的文件中加入了中文,所以我用GB2312格式读取此文件时就会出现此问题