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

时间:2015-02-15 13:17:38

标签: c++ qt qstring

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

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

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

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

1 个答案:

答案 0 :(得分:3)

当你发现自己时,你需要QTextCodec。你想做的事应该就是这么简单:

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