如何从 QString 获取常量字符 *

How to obtain const char * from QString

本文关键字:常量 字符 获取 QString      更新时间:2023-10-16

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

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

我需要将此字符串传递给另一个接受常量字符的库 *论点。请问我如何获得常量字符 *?我尝试过Local8bit(),toLatin1(),toUtf8()都没有运气。好像我是 缺少一些东西...

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

混合std::stringQString是没有必要的,因此最好通过qt类型(QString -> QByteArray -> const char*)而不在这里引入std::string

你在哪里使用 toLocal8bit()toLatin1()toUtf8()取决于您的编码,因此这是一个与这里的主要问题不同的问题。他们都会给你一个QByteArray

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