warning: #870-D: invalid multibyte character sequence

warning: #870-D: invalid multibyte character sequence
2011-03-12 9:18
warning: #870-D: invalid multibyte character sequence
const unsigned char mm[]={"*"};
MDK3.40版本版本有告警,C-MDK 3.70正常
警告内容告诉你:invalid multibyte character sequence 非法的多字节字符串。
这就是说你的编译器不支持多字节字符,即不支持非ASCII字符。
使用字符串格式就没有问题了,和编译器版本有关
比如
char *str;
str = "我是中文字符串";
不用管它就行了。这是编译器的功能,老外的ASCII码都是127以下,中国人用的是127以上,编译器是给老外写的,自然会以为全世界的字符都是ASCII码了,看到这种“非法”的字符哪能不马上跳起来告诉你,以体现他们“人性化”的设计。
老式终端里,数据(也就是标准ASCII码)只有7位,超过127的编码,别说是查示不出来,传输都会出问题。那个警告其实想告诉你的就是那意思。
我在C的选项里把警告输出关掉了,眼不见,心不烦。
keil中警告:invalid multibyte character sequence
//#pragma diag_suppress 77,550,1294,1295
#pragma diag_suppress 870 

用这个方法解决,这个狗KEIL的例子里找到的,我已经实验成功了

上一篇:Java String.replace()方法


下一篇:JAVA中Integer.valueOf, parsetInt() String.valueOf的区别和结果