使用强制语言环境将 QString 转换为 QByteArray

Convert QString to QByteArray with forced locale

我需要使用没有 toLocal8bit() 函数的 cp1251 语言环境将 QString 转换为 QByteArray。

即在我当前的 PC 上,默认语言环境是 cp1251 -> QString::toLocal8bit() 工作得很好,但是一旦我将语言环境切换到不同的地方 -> 我就不能使用 toLocal8Bit()。我已经阅读了有关 QTextCodec 和其他内容的文档,但对我来说似乎很晦涩。

所以,问题是 - 如何使用指定的语言环境将 QString 转换为 QByteArray?

非常欢迎任何帮助和解释。

正如您自己发现的那样,为此您需要 QTextCodec。你想做的应该像这样简单:

QString src = "My test string";
QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
QByteArray encodedString = codec->fromUnicode(src);