6

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

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

4

1 回答 1

10

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

因为如果你尝试这些,你只会得到一个QByteArrayback 而不是const char*. 你可以使用你得到的constData()方法QByteArray,然后你就会得到想要的结果。

混合std::stringQString不是必须的,因此最好不要在这里QString -> QByteArray -> const char*介绍 qt 类型 ( ) 。std::string

你在哪里使用toLocal8bit()toLatin1()或者toUtf8()取决于你的编码,所以这与这里的主要问题不同。他们都会返回一个QByteArray给你。

注意:您应该避免使用toAscii()虽然,因为它在 Qt 5 中已被弃用。

于 2013-09-25T06:39:02.633 回答