Cómo QT3 implementa la conversión entre QString y char*
Cómo convertir QString en Qt Para char*, debe usar la clase QByteArray. p>
Cómo convertir QString a char * en Qt, necesita usar la clase QByteArray. Para obtener instrucciones sobre la clase QByteArray, consulte el archivo de ayuda de Qt.
Porque hay un '/0' al final de char*, y QString::toLatin1() agregará '/0'
El método es el siguiente: p>
Qstring
str;
char*
ch;
QByteArray
ba
=
str.toLatin1();
ch=ba.data();
Esto completa la conversión de QString a char. . El programa probado se ejecuta sin errores
Tenga en cuenta que se debe agregar la tercera línea en lugar de str.toLatin1().data(), por lo que puede haber errores una vez completado.
Suplemento: no hay problema cuando QString no contiene chino en el método anterior, pero cuando QString contiene chino, la conversión a char * es confusa e799bee5baa6e997aee7ad9431333361313962 Utilice el siguiente método para resolverlo: <. /p>
Método 1:
Agregar soporte de codificación GBK:
#include
lt;QTextCodecgt;
QTextCodec: :setCodecForTr(QTextCodec::codecForName(" GBK"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
Luego cambie el tercer comportamiento anterior : QByteArray
ba
=
str.toLoacl8Bit();
toLoacl8Bit admite chino
Método 2 :
Primero convierta QString al tipo de cadena en la biblioteca estándar y luego convierta la cadena al tipo char* de la siguiente manera:
std::string
str
=
nombre de archivo.toStdString();
const
char*
ch
=
str.c_str();