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