这是我写的获取TXT文件内容的代码,但是在获取中文时就会乱码,这怎么解决??C++

ifstream input("c:\\a.txt");
if(!input)
{
cerr << "error!";
}

string line, word;
string Array[3][4];
int m(0), n(0);
while (getline(input, line)) //读取每行的字符
{
istringstream isstream(line);
while (isstream >> word) //读取该行用空格隔开的单个数据
{
Array[m][n] = word;
++n;
}
++m;
n = 0;
}
input.close();

文件以什么格式保存的就必须以什么格式打开。不然就会是乱码。
如果仅假设文件以unicdoe或是当前字符编码保存(一般来说就是中文了),那可以看一下mingjin654321给你的方案。还有一些在此基础上扩展的方案。
如果你需要使用的是多国语言,那么还有两个方案。一个是微软提供了检测字符编码的接口IMultiLanguage3有人使用c#做了移植,还有Mozilla 有一个项目叫Universal Charset Detector也是对检测字符编码的组件,也有人使用C#做了移植。
温馨提示:答案为网友推荐,仅供参考
相似回答