我从带有UTF8编码的XML文件中读取了一个字符串。我将此值存储在QString
对象中,并将其与其他一些信息连接起来。我可以在QtCreator调试器中看到QString
保存所需的值。
我需要将此字符串传递给另一个接受const char *
参数的库。请问我如何获得const char *
?我试过toLocal8bit()
,toLatin1()
,toUtf8()
都没有运气。好像我错过了什么...
我需要将此字符串传递给另一个接受常量字符的库 *论点。请问我如何获得常量字符 *?我尝试过Local8bit(),toLatin1(),toUtf8()都没有运气。好像我是 缺少一些东西...
因为如果你尝试这些,你只会得到一个QByteArray
而不是一个const char*
。你可以在你得到的QByteArray
上使用 constData() 方法,然后你会得到想要的结果。
混合std::string
和QString
是没有必要的,因此最好通过qt类型(QString -> QByteArray -> const char*
)而不在这里引入std::string
。
你在哪里使用 toLocal8bit()
,toLatin1()
或toUtf8()
取决于您的编码,因此这是一个与这里的主要问题不同的问题。他们都会给你一个QByteArray
。
注意:您应该避免使用toAscii()
,因为它在Qt 5中已弃用。