我有一个文件以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/

10-11 22:48
查看更多