codeblock输出中文乱码问题
目录
- 1. 问题
- 2.分析原因
- 文件打开就是乱码
- 终端输出乱码
- 3.总结
- (1)GBK-GBK-GBK
- (2)UTF-8 - UTF-8 - GBK
- 4.注意
1. 问题
今天使用codeblock时,编译的时候发现codeblock终端输出的中文出现了乱码。
看到codeblock右下角提示 “为了防止数据丢失,该文件已经保存为UTF-8”,然后就出现了乱码。
2.分析原因
在网上差了很多资料说:
乱码的原因是因为出现系统本地编码和codeblocks的编译器的解码方式是不一样的,是GBK编码方式和UTF-8编码方式的冲突问题。
一开始不是很明白,后来仔细地分析了一下。
有两种乱码:
- 文件打开就是乱码
- 终端输出乱码
文件打开就是乱码
如下:
cout<<"±à¼Æ÷£ºÉèÖÃΪÁËĬ"<<endl;cout<<"±àÒëÆ÷£ºÄ¬ÈÏ"<<endl;cout << "Hello world!" << endl;
这和编辑器的编码方式有关。
设置->编辑器->编码设置
我们发现这里有一个打开文件时,使用编码
,它就是我们保存和打开文件时使用的编码格式:
我们常用的有两种编码方式:UTF-8 和 GBK
WINDOWS-936代表的是GBK编码格式,GBK是windows使用的编码格式;
UTF-8是codeblock默认的编码格式,UTF-8是Linux的编码格式。
题外话:
正是由于这两种格式的冲突在mingGW中提供了一套Windows下的基于GCC 程序开发环境,即在Windows平台上模拟了Linux下GCC的开发环境。
回归正题,windows系统下我们还是更常用WINDOWS-936编码格式,但是需要注意的是“使用此编码”
一定要选择“设为默认的编码方式”
,这样的话你保存和打开的文件编码格式就是一样的啦,打开文件就不会出现了乱码了。当然选择UTF-8也是可以的,就是后面的编译的编码方式也需要调整。
我之前选择的是“作为备用编码”
,这压根就会导致codeblock先进行编码格式检测,检测不到再使用我们定义的编码格式。按理说是没问题的,但是不知道为什么我的codeblock应该自动将文件识别为UTF-8编码,即使文件是GBK的。GBK的文件,使用UTF-8解析打开当然就会出现上面的乱码了。
注意:文件的编码格式和他保存时codeblock的编辑器设定的格式是一样的,而且保存后就不能对编码格式进行修改了。
终端输出乱码
终端输出乱码和编译器有关:
设置->编译器
这里就需要两个命令:
-finput-charset=charset
-fexec-charset=charset
含义:
-finput-charset=charset指定编译器用什么编码解释输入源文件,它需要和源文件的编码格式一样,格式一样才可能编译;
如果格式不一样会报如下错误:
根本无法编译。
-finput-charset=charset的默认值是UTF-8;
-fexec-charset=charset是编译的时候以什么编码格式在终端输出.
-fexec-charset=charset默认情况下是UTF-8,但是windows不能识别,所以要修改为GBK,就不会出现乱码了。
3.总结
综上所述,codeblock有两种设置编码的格式:
(1)GBK-GBK-GBK
设置->编辑器->使用编码WINDOWS-936
设置->编译器->其他编译器设置
输入以下语句:
-finput-charset=GBK
-fexec-charset=GBK
(2)UTF-8 - UTF-8 - GBK
设置->编辑器->使用编码UTF-8
设置->编译器->其他编译器设置
输入以下语句:
-finput-charset=UTF-8
-fexec-charset=GBK
4.注意
两种格式的文件最好用相应的编码格式打开:
即 UTF-8 - UTF-8 - GBK 创建的文件就还用UTF-8 - UTF-8 - GBK配置打开,
GBK-GBK-GBK 创建的文件就还用GBK-GBK-GBK 配置打开。
否则可能会出现文件找不到,代码消失 的问题。
(我发现我的codeblock:
UTF-8 - UTF-8 - GBK 配置打开 GBK-GBK-GBK 文件没问题,可以显示代码内容;
GBK-GBK-GBK 配置打开UTF-8 - UTF-8 - GBK 文件就不会显示,当时吓坏我了
)
codeblock输出中文乱码问题相关推荐
- PHP输出中文乱码的解决方法
PHP输出中文乱码的解决方法 参考文章: (1)PHP输出中文乱码的解决方法 (2)https://www.cnblogs.com/cyun/p/4146131.html 备忘一下.
- 解决Vs输出中文乱码的问题
解决Vs输出中文乱码的问题 原文:https://blog.csdn.net/c_khalid/article/details/51515675 源程序的运行结果是:中文乱码 首先,这个与VS本身无关 ...
- jquery PHP 中文乱码,PHP输出中文乱码怎么解决?
在建立网站的时候我们会发现,php页面输出乱码,php输出数据库字段也乱码,这要怎么解决?下面本篇文章就来给大家介绍一下解决php输出中文乱码的方法,希望对你们有所帮助. 第一种.HTML和PHP混合 ...
- qt5.13.2输出中文乱码
qt5使用qDebug()输出中文乱码,可以在.pro文件中添加以下的代码: #解决中文编译没法通过,输出中文乱码 msvc {QMAKE_CFLAGS += /utf-8QMAKE_CXXFLAGS ...
- asp.net core输出中文乱码的问题
原文:asp.net core输出中文乱码的问题 摘要 在学习asp.net core的时候,尝试在控制台,或者页面上输出中文,会出现乱码的问题. 问题重现 新建控制台和站点 public class ...
- Servlet 输出中文乱码的新收获(1)
又碰到servlet 输出中文乱码的问题,恼火.研究了一下,有了新的发现和认识. 原始代码: java 代码 protected void doGet(HttpServletRequest reque ...
- VScode输出中文乱码的解决方法------测试过可以用
VScode输出中文乱码的解决方法------测试过可以用 参考文章: (1)VScode输出中文乱码的解决方法------测试过可以用 (2)https://www.cnblogs.com/shou ...
- php打印出来乱码_PHP输出中文乱码怎么解决?
在建立网站的时候我们会发现,php页面输出乱码,php输出数据库字段也乱码,这要怎么解决?下面本篇文章就来给大家介绍一下解决php输出中文乱码的方法,希望对你们有所帮助. 第一种.HTML和PHP混合 ...
- 彻底解决IDEA输出中文乱码问题
本文一共有3种方法,针对的情况是输出中文乱码问题 问题描述 无法正确输出中文字符:(请正确分辨自己是哪一种乱码问题!) 解决方法 1.最容易想到 File -> Settings -> F ...
- PHP输出中文乱码的解决方法(适合初学者)
PHP输出中文乱码的解决方法 为什么会出现中文乱码? 一般来说,乱码的出现有2种原因,一种是由于编码(charset) 设置错误,导致浏览器以错误的编码来解析,从而出现了乱码,第二种就是文件被以错误的 ...
最新文章
- Java8中一个极其强悍的新特性,很多人没用过(非常实用)
- 【Python】青少年蓝桥杯_每日一题_12.03_输出字符串的长度
- 使用 Azure Container Registry 储存镜像
- django-模板注释
- python函数myproduct_OpenERP与Python 元编程
- PHP获取数组中重复数据
- 研究生文献笔记(obsidian模板分享!!):zotero+bookxnote pro+obsidian
- sublime下编辑LaTeX
- [RK3288][Android5.1] 调试笔记 --- LVDS+EDP双屏机器调节白平衡色温
- linux安装wine
- 斯皮尔 皮尔森 肯德尔_在SPSS软件相关分析中,pearson(皮尔逊), kendall(肯德尔) 和spearman(斯伯曼/斯皮尔曼)三种相关分析方法有什么异同(转)...
- linux查看pv数据量,linux下计算网站PV量、UV量
- 简:webservice服务端及客户端开发
- 高性能服务器设计[转自腾讯km,由qzhang同学翻译]
- 阿里终于杀进5G了!“新基建”赛道谁更胜一筹
- ISP IAP 详解与ISP IAP的实现
- N5105 软路由安装 ESXi 7 直通核显给 Debian / Ubuntu 虚拟机通过 Docker 实现 jellyfin 硬件转码视频文件(硬解/编码)
- 错误收集:备忘MPI Application rank 0 exited before MPI_Finalize()nbsp
- 设计一个时间片轮转法调度的算法
- Scrap入门之基础命令
热门文章
- 计算机汉字录入及信息表示,2010年青岛市初中8年级信息技术会考考试知识点说明...
- 电子邮件收发的原理和相关协议
- Report Machine 的问题 补充!!!
- 计算机电源高频干扰,开关电源中电磁干扰的透彻分析及其解决办法
- 局域网聊天程序 java MySQL_局域网聊天软件设计与实现(Linux,C++,MySQL)
- unigui发布_unigui+fastReport实现web打印方案
- 云播 Android,云播放(Air Playit)android版
- 计算机的ie丢失,告诉你win7内的IE给卸载了怎么找回
- linux学习--体验免安装版本的linux
- (七)OpenCV | 色度图