如何从QString获取const char *

时间:2013-09-25 03:56:36

标签: c++ qt qt-creator qstring qtcore

我从一个带有UTF8编码的XML文件中读取了一个字符串。我将此值存储在QString对象中,并将其与其他一些信息连接起来。我可以在QtCreator调试器中看到QString保持所需的值。

我需要将此字符串传递给另一个带有const char *参数的库。我如何获得const char *?我已经尝试了toLocal8bit()toLatin1()toUtf8()但没有运气。好像我错过了什么......

1 个答案:

答案 0 :(得分:10)

  

我需要将此字符串传递给另一个采用const char的库   *论点。我如何获得const char *?我已经尝试过loc8bit(),toLatin1(),toUtf8()都没有运气。好像我一样   遗失了什么...

因为如果你尝试这些,你只会得到QByteArray而不是const char*。您可以在QByteArray上使用std::string方法,然后您将获得所需的结果。

不需要混用QStringQString -> QByteArray -> const char*,因此最好不要在此处引入std::string来浏览qt类型(toLocal8bit())。

您使用toLatin1()的地方,toUtf8()QByteArray取决于您的编码,因此这是与此处的主要问题不同的问题。他们都会向您返回toAscii()

注意:您应该避免使用{{1}},因为在Qt 5中已弃用。