我通过读取一个文件的内容,然后在终端显示,可是在终端显示的中文全是乱码. 我把内容重新写到另外一个文件中,又是正常的.
请问一下,就上面的情况,怎么样能在终端显示中文呢?在输出的时候做什么处理呢?
谢谢.
新手求教:C++的中文输出问题
-
- 帖子: 62
- 注册时间: 2007-04-20 13:05
-
- 帖子: 353
- 注册时间: 2007-04-03 9:52
- 联系:
我猜,主要是大多数人没怎么用中文开发,有2个问题想问你
1. 终端的charset是什么?
2. 输入/输出文件的编码是什么?
我这里终端是utf-8, 我用utf-8的文件做了一下测试,可以正常显示
测试代码如下
测试用的 chinese 文件中的内容如下,字符集是UTF-8
1. 终端的charset是什么?
2. 输入/输出文件的编码是什么?
我这里终端是utf-8, 我用utf-8的文件做了一下测试,可以正常显示
测试代码如下
代码: 全选
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main(int argc, char ** argv)
{
ifstream in("chinese");
if (!in)
{
cerr << "open file faild!" << endl;
return -1;
}
string temp;
while (getline(in, temp))
{
cout << temp << endl;
}
return 0;
}
UTF8中文测试
下面这句话无疑是句费话
上面这名话无疑是正确的
-
- 帖子: 353
- 注册时间: 2007-04-03 9:52
- 联系:
-
- 帖子: 1074
- 注册时间: 2006-01-18 15:01
-
- 帖子: 62
- 注册时间: 2007-04-20 13:05
- arthur
- 帖子: 76
- 注册时间: 2006-08-13 16:06
目前中文的编码有不少,写汉字处理的程序一定要考虑编码问题。现在主流的编码有(GB2312, GBK, GB18030, UTF-8等),有一个开源的库我们可以用它轻松的实现编码间的相互转换:libiconv(http://www.gnu.org/software/libiconv/),具体怎么用,请研究手册吧!