Dev C++中文乱码问题/error: converting to execution character set: llegal byte sequence.

本文介绍了解决GCC编译器在处理GBK编码源文件时出现的乱码及错误的方法。通过设置-finput-charset和-fexec-charset参数确保源文件与编译输出编码一致,避免编译和运行时的乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

中文乱码/编译时报错:error: converting to execution character set: llegal byte sequence.

dev重新安装,搞了好久。
感谢铁汁!!我搞了好多方法都不行
so,发出来大家康康
在这里插入图片描述
------------------------------------------------分割线-----------------------------------------------------

2024/6/13 又再次被这个问题难到了 琢磨了很久才找到自己的问题
解决:
编辑器选项输入:-fexec-charset=GBK -finput-charset=GBK
必须是同一个,也就是都设置为gbk,如果一个utf-8 一个gbk肯定会错!别问我为什么知道,血泪的教训

在这里插入图片描述
大概解释:

  • 源代码文件和编译器输入时设置的编码可能不一致:源代码默认情况是保存为windows本地编码的,也就是WINDOWS-936字符集,也就是GBK编码。但是GCC编译器默认编译的时候是按照UTF-8解析的(linux默认字符集是UTF-8),如果没有声明编码格式,编译器会把GBK当成UTF-8解析,从而导致编译错误。
    so : -finput-charset=GBK设置来指定编译器用什么编码解释输入源文件,格式为GBK。
    -编译时就不会报错了,但是编译后运行时,在控制台显示的依然是乱码!: 编译之后默认情况的执行文件时编译成UTF-8的,控制台显示的时候缺省的是使用系统默认的字符集,比如windows下用的是GBK,所以乱码
    so: fexec-charset=GBK 设置来指定编译器编译后的代码格式,格式GBK。

同理:格式一致即可,都为UTF-8也行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值