1. 问题
- keil软件输入某些汉字的时候会输出乱码,例如:
升
、数
2. 原因
- keil软件会忽略0xFD。
升
的GB2312编码为0xc9fd
,keil解析为0xc9
数
的GB2312编码为0xcafd
,keil解析为0xca
关于Keil软件中0xFD问题的说明
3. 解决方案1
//Keil编译后打印会显示乱码
printf("数学");
//显示正常
printf("数\xfd学");
/*
这里的“\xfd”是标准C代码中的转义字符,
“\x”表示其后的1~2个字符为16进制数。
“\xfd”表示将16进制数0xfd插入到字符串中。
*/
4. 解决方案2
使用修复补丁keilfdfix
。
- 将补丁拷贝到安装keil目录
- 双击运行,点击开始
- 重新全部编译程序(rebuild,不是build)
下载地址:
https://www.stcisp.com/keilfdfix/?V0.99b8