关于Linux系统编译C语言代码汉字支持问题

最近在网上看到很多人问,为什么用Linux编译C语言或者C++代码是,汉字输出为乱码。对此问题,网上有很多解决办法,其中有些办法很有效,但对于刚刚接触C语言或者Linux系统的小白来说,部分办法很难理解。下面,逼着给大家提供一种,简单而容易理解的办法。

这类问题多发生在虚拟机,Windows和Linux文件互传时,所以接下来的内容都是基于寄主机为Windows的Linux虚拟机。

首先,笔者在Windows下创建一个TXT文件,并输入简单的C语言代码:

关于Linux系统编译C语言代码汉字支持问题

保存,并命名为“a.c”,拖动到Linux桌面,运行,发现,输出为一行乱码。(改动前后一起运行的,图片见后面正确运行)

这是为什么呢?

这是因为,windows记事本编码方式默认为ANSI,但Linux编译时按照UTF-8,编译,所以为了,实现汉字支持,只需另存为UTF-8编码就可以了。命名为"a1.c"见下图:

关于Linux系统编译C语言代码汉字支持问题

关于Linux系统编译C语言代码汉字支持问题

将文件拖动到Linux系统桌面

关于Linux系统编译C语言代码汉字支持问题

运行结果如下

关于Linux系统编译C语言代码汉字支持问题