我的应用程序是用 C++'11 开发的,使用 Qt5。在此应用程序中,我需要将 UTF-8 文本存储为 Windows-1250 编码文件。我尝试了以下两种方法,并且都适用于罗马尼亚语 'ș' 和 'ț' 字符:(
-
1.
auto data = QStringList() << ... <some texts here>;
QTextStream outStream(&destFile);
outStream.setCodec(QTextCodec::codecForName("Windows-1250"));
foreach (auto qstr, data)
{
outStream << qstr << EOL_CODE;
}
-
2.
auto data = QStringList() << ... <some texts here>;
auto *codec = QTextCodec::codecForName("Windows-1250");
foreach (auto qstr, data)
{
const QByteArray encodedString = codec->fromUnicode(qstr);
destFile.write(encodedString);
}
如果是“ț”字符(别名 0xC89B),而不是预期的 0xFE 值,该字符被编码并存储为 0x3F,这是意料之外的。
因此,我正在寻找有关文本重新编码的任何帮助或经验/示例。
此致,