我从一个带有UTF8编码的XML文件中读取了一个字符串。我将此值存储在QString
对象中,并将其与其他一些信息连接起来。我可以在QtCreator调试器中看到QString
保持所需的值。
我需要将此字符串传递给另一个带有const char *
参数的库。我如何获得const char *
?我已经尝试了toLocal8bit()
,toLatin1()
,toUtf8()
但没有运气。好像我错过了什么......
答案 0 :(得分:10)
我需要将此字符串传递给另一个采用const char的库 *论点。我如何获得const char *?我已经尝试过loc8bit(),toLatin1(),toUtf8()都没有运气。好像我一样 遗失了什么...
因为如果你尝试这些,你只会得到QByteArray
而不是const char*
。您可以在QByteArray
上使用std::string
方法,然后您将获得所需的结果。
不需要混用QString
和QString -> QByteArray -> const char*
,因此最好不要在此处引入std::string
来浏览qt类型(toLocal8bit()
)。
您使用toLatin1()
的地方,toUtf8()
或QByteArray
取决于您的编码,因此这是与此处的主要问题不同的问题。他们都会向您返回toAscii()
。
注意:您应该避免使用{{1}},因为在Qt 5中已弃用。