【C语言踩坑】Day1:printf中文乱码?原来是UTF-8和GBK在打架
今天干了啥?
今天继续学 printf,想打印一句“Hello World!我是机械准大一”来庆祝博客开通成功。
出现啥问题了?
代码明明敲对了:
```c
include <stdio.h>
int main() {
printf("Hello World!我是机械准大一\n");
return 0;
}
```
编译通过了,程序也跑起来了,结果黑色窗口里中文全变成了一堆看不懂的符号(像 ??? 或者 我 这种)。
我是怎么解决的?)
- 我一开始以为是代码写错了,检查了好几遍发现没问题。
- 后来知道了,是 Visual Studio 默认用 UTF-8 存代码,但 Windows 命令行默认用 GBK 读中文,两边对不上就乱码了。
- 我用的是改代码文件编码的方法:在 VS 里点“文件” -> “高级保存选项”,把编码从 UTF-8 改成 简体中文(GB2312) - 代码页 936,再重新运行就好了。
我学到了什么?
- 电脑里的“编码”就像翻译官,写代码的人和电脑看得懂的语言得对得上才行。
- 遇到乱码别慌,不是代码错了,是“翻译官”没匹配好。
- 以后写代码,如果涉及中文,记得先确认编码格式。
今日吐槽()
没想到学编程的第一天,不是被逻辑难倒,是被中文显示难倒……
浙公网安备 33010602011771号