乱码问题主要是因为不同平台的编码不同造成的,你是GBK/GB2312,我是UTF-8;不同的IDE应该都提供了相应的解决方案,但需要用户自己配置一下,在codeblock下解决方案如下:
(我的codeblock是汉化过的,如果你没有汉化过,可以看截图相应位置或者凭英语硬实力操作!)
1、首先,选择第三个编译器进入
编辑
2、在全局编译器设置下的Other compiler options中添加如下代码:(如果编译器没有配置过,则默认这里是空的)
编辑
代码如下:
-finput-charset=UTF-8
-fexec-charset=GBK
现在再编译运行试试,就没问题了。
解释:
1、-finput-charset=UTF-8
:
- 这个选项告诉编译器,源代码文件使用 UTF-8 编码。UTF-8 是一种可变长度的字符编码,可以表示 Unicode 字符集中的所有字符。
- 使用此选项可以确保编译器正确解析源代码中的字符,特别是当源代码中包含非 ASCII 字符(如中文、日文等)时。
2、-fexec-charset=GBK
:
- 这个选项指定程序在执行时使用 GBK 编码。GBK 是一种用于简体中文的字符编码,能够表示汉字及其他一些字符。
- 通过设置执行字符集为 GBK,可以确保程序在输出时正确显示中文字符,尤其是在终端或控制台中。
字符集知识点补充:
字符集是计算机中用于表示文本的字符的集合。它定义了字符与其对应的数字编码之间的映射关系。不同的字符集可以支持不同的语言和符号。以下是一些常见的字符集及其解释:
1. ASCII (American Standard Code for Information Interchange)
- 描述: ASCII 是最早的字符集之一,使用 7 位二进制数表示 128 个字符,包括英文字母、数字、标点符号和控制字符。
- 范围: 0-127
- 用途: 主要用于英语文本。
2. ISO-8859 系列
- 描述: ISO-8859 是一系列 8 位字符集,扩展了 ASCII,支持多种西欧语言。
- 常见变种:
- ISO-8859-1: Latin-1,支持大多数西欧语言。
- ISO-8859-2: Latin-2,支持中欧语言(如波兰语、捷克语等)。
3. UTF-8
- 描述: UTF-8 是一种可变长度的字符编码,可以表示 Unicode 字符集中的所有字符。它使用 1 到 4 个字节表示一个字符。
- 优点: 向后兼容 ASCII,广泛用于网页和现代应用程序。
- 用途: 支持全球几乎所有语言的字符。
4. UTF-16
- 描述: UTF-16 也是一种可变长度的字符编码,通常使用 2 或 4 个字节表示一个字符。
- 用途: 常用于 Windows 系统和 Java 编程语言中,支持 Unicode 字符集。
5. GB2312 / GBK / GB18030
- 描述: 这些是用于简体中文的字符集。
- GB2312: 最初的简体中文字符集,支持约 7,000 个汉字。
- GBK: 扩展 GB2312,支持更多汉字和符号。
- GB18030: 进一步扩展,支持所有 Unicode 字符。
- 用途: 主要用于中文操作系统和应用程序。
6. Big5
- 描述: Big5 是用于繁体中文的字符集,主要在台湾和香港使用。
- 用途: 支持繁体中文字符。