我有一个文件以ANSI格式编码(在Notepad ++中显示为ANSI编码),并且它还显示特殊字符(摄氏度,磅等),并且在阅读时我想将所有字符都转换为unicode。
如何在C / C++或Qt中将ANSI转换为Unicode?
最佳答案
我的Qt仍然很使用rust ,但是遵循以下几条原则:
QFile inFile("foo.txt");
if (!inFile.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QFile outFile("foo.out.txt");
if (!outFile.open(QIODevice::WriteOnly | QIODevice::Truncate))
return;
QTextStream in(&inFile);
QTextStream out(&outFile);
out.setCodec("UTF-8");
while (!in.atEnd()) {
QString line = in.readLine();
out << line;
}
从
QFile
和 QTextStream
的文档中拼凑而成,这两个文档均包含用于读写文件的示例。 QTextStream
的默认设置是使用旧式编码,因此我们只需要在输出QTextStream
上设置一个显式编码。如果文件不是太大,您也可以使用
out << in.readAll();
而不是循环循环。循环尤其可能在输出文件中添加尾随换行符(尽管文档对此不太清楚)。
关于c++ - 如何将ANSI格式文件转换为Unicode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10327778/