Code::Blocks输出中文乱码问题解决方案

1.环境:

Winsows7

IDECode::Blocks 16.01   

编译器:GCC

2.问题描述:

在代码中使用 printf(“中文”);打印中文字符的时候,编译过后没有错误,可以运行,但是实际显示的时候是乱码。 

网上的搜索答案,一般解决Code::Blocks中文乱码的方法几乎都是:settings -> compiler and debugger settings -> global compiler settings -> compiler settings -> Other Options, 在其中输入语句 -finput-charset=GBK  -fexec-charset=GBK保存即可。

但是通过这种方式编译会出错。错误如下:

||error: failure to convert GBK to UTF-8|

3.解决方法

GCC编译器默认编译的时候是按照UTF-8解析的。但是windows下只能正确显示GBK格式的文件。这个问题就是uft-8gbk冲突的问题。如果一个文件本来是以utf-8存的,但是以gbk打开,当然会出现乱码了。

如果你把源文件保存成UTF-8GCC本来默认把它当成UTF-8解析,所以编译能通过,但是会显示是乱码。如果输入和输出都改成是GBK,那么GCC是解码不了的,所以编译会失败。

正确的方法是根据实际情况来设置输入输出的格式。默认输入的是UTF-8,要在windows上显示正常的中文,那输出格式就要改成GBK了。所以按照网上的步骤,最后应该设置的信息是:

-finput-charset=UTF-8

-fexec-charset=GBK

设置步骤如下:settings -> compiler and debugger settings -> compiler settings -> other compiler options  ->  写入上面的信息。

 

 

 

 

  • 31
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值