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