windows平台下,GCC在编译时,源文件的编码问题,以及如何处理,详细见贴内。

慕夜蓝化 2017-08-23 06:59:31
在windows平台下,
GCC编译ANSI编码的文件,其内含有中文可以正常编译并显示。

GCC编译UNICODE编码的文件,则提示一大堆看不懂的东西,编译无法进行。

GCC编译UTF-8编码的文件,可以正常编译,但是输出中文乱码。

请教,一般情况下,直接保存为ANSI可以解决中文输出乱码的问题。

但是因为我在使用VScode,通常默认打开时的编码为UTF-8,包括保存亦是如此。

而我在VScode下使用的编译器也是GCC,所以就想有没有什么办法可以解决GCC 编译 UTF-8编码的源文件时的乱码问题。

再者有几次切换编码保存不当,导致自己的记录文件,全部乱码不可用,所以想统一以UTF-8来存储并编译。

在这里先谢谢各位,找到解决方案后,会及时结贴给分。
...全文
440 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JLoeve 2018-07-09
  • 打赏
  • 举报
回复
楼主使用的是vscode的话,那么可以考虑一下向工作区的设置中添加一项:
"files.encoding": "gb2312"(当然这个编码看你喜好了,但是得和gcc使用的编码一致哦)

这样在工作区内读取和编写文件时都会使用的你设置的字符集编码啦
慕夜蓝化 2017-09-07
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
恩恩!谢谢!
慕夜蓝化 2017-09-07
  • 打赏
  • 举报
回复
引用 1 楼 adlay 的回复:
用 -finput-charset= 指定输入文件的编码 输出到控制台乱码的问题你得看控制台使用的什么编码, 不光是程序这边
嗯嗯,我在vscode中使用的是UTF - 8,在控制台中将编码更改为 chcp 65001 之后,输出不再乱码。 谢谢提示!
慕夜蓝化 2017-09-07
  • 打赏
  • 举报
回复
引用 2 楼 trytry1992 的回复:
ANSI编码的文件里的中文到底是什么编码
实际编码为: GB2312 这个应该是区域向的。
赵4老师 2017-08-23
  • 打赏
  • 举报
回复
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
trytry1992 2017-08-23
  • 打赏
  • 举报
回复
ANSI编码的文件里的中文到底是什么编码
www_adintr_com 2017-08-23
  • 打赏
  • 举报
回复
用 -finput-charset= 指定输入文件的编码 输出到控制台乱码的问题你得看控制台使用的什么编码, 不光是程序这边

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧