codeblocks中文输出提示出错,是设置错误造成的,解决方法如下:
1、首先打开Code Blocks软件,会看到顶部的菜单栏都是英文的,这代表当前的语言环境是英文,如下图所示。
2、接下来下载Code Blocks的汉化包文件,解压汉化包,会看到locale.zip压缩文件,将其解压。
3、解压了locale.zip压缩文件以后,复制它里面的locale文件夹,注意复制的层级路径。
4、接下来进入Code Blocks安装目下下的share文件夹,然后打开CodeBlocks文件夹,将刚才复制的locale文件粘贴到这里面。
5、然后进入Code Blocks软件,点击顶部的Settings菜单,选择下拉菜单中的Environment选项。
6、在Environment settings界面中,点击左侧的View选项,勾选右侧的Internationalization选项。
7、然后在语言下拉框中就会看到Chinese选项,这就是简体中文,选择它即可。
2013-08-15
你的C::B的文本编辑器编码与操作系统shell所使用的不一致。
在设置->编辑器->其他设置->编码(Settings->Editor->Other settings->Encoding)将文本编码设置为你的环境所使用的编码。
如果你使用Windows,设置为Windows-936。(简体中文)
如果你使用UNIX类系统,请参看系统的环境变量。一般是UTF-8。
另外,你还可以使用开源的GNU iconv函数库,将你的字符串从文本编辑器的编码转换为系统的编码。
以上说的是通用的方法。下面还有段用wchar_t的方法的例子,我只在Win+VS下测试过。(使用GCC的话可能要指定-finput-charset参数)
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale( LC_ALL, "CHS" ); //将CHS设为你系统用的编码
wchar_t s[]=L"国足";
wprintf(s);
//printf( "%S" ,s); //第一个是大写S
return 0;
}
codeblocks默认源代码文件编码根据OS而定,编译时编码UTF-8,那么问题就来了
在你不更改任何codeblocks配置时:
在WINDOWS中:源代码——WINDOWS-936(即GBK) 编译后文件默认UTF-8 而输出windows会按GBK来解释,所以从GBK->UTF-8->GBK就是乱码;
在LINUX中:默认是UTF-8,自然从源代码到编译到输出都是UTF-8,因此没有乱码;
WINDOWS中:设置如下settings->compiler->Other options中增加2条命令
-finput-charset=GBK编译时用GBK格式 不指定默认UTF-8
-fexec-charset=GBK生成执行文件时用GBK格式 不指定默认UTF-8
请使用宽字符串字面量和宽字符输出函数。
#include <wchar.h> // stdio.h似乎也可
wprintf(L"呵呵\n");
还是不行啊
记得C::B显示中文一直不太正常...wcout也是显示不了
下面的代码粘贴过去试试
#include<stdio.h>
int main()
{
printf("你好\n");
return 0;
}