我是一名有用的助手,可以为您翻译文本。
我已经阅读了许多关于这个问题的文章和论坛帖子,所有的解决方案似乎都对于这样一个简单的任务来说过于复杂。
以下是直接从cplusplus.com获取的示例代码:
只要example.txt仅包含ASCII字符,它就能正常工作。但如果我试图添加一些俄文之类的东西,情况会变得混乱。
在GNU/Linux中,只需将文件保存为UTF-8即可。
在Windows中,这种方法行不通。将文件转换为UCS-2 Little Endian(Windows默认使用的编码)并将所有函数更改为wchar_t版本也无法解决问题。
难道没有某种“正确”的方法可以在不进行各种魔术编码转换的情况下完成这个任务吗?
我已经阅读了许多关于这个问题的文章和论坛帖子,所有的解决方案似乎都对于这样一个简单的任务来说过于复杂。
以下是直接从cplusplus.com获取的示例代码:
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( myfile.good() )
{
getline (myfile,line);
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
只要example.txt仅包含ASCII字符,它就能正常工作。但如果我试图添加一些俄文之类的东西,情况会变得混乱。
在GNU/Linux中,只需将文件保存为UTF-8即可。
在Windows中,这种方法行不通。将文件转换为UCS-2 Little Endian(Windows默认使用的编码)并将所有函数更改为wchar_t版本也无法解决问题。
难道没有某种“正确”的方法可以在不进行各种魔术编码转换的情况下完成这个任务吗?