c++ - convert - Convierte std:: string en QString
como convertir un string a qstring (3)
Tengo un std::string content
que sé que contiene datos UTF-8. Quiero convertirlo en un QString
. ¿Cómo hago eso, evitando la conversión from-ASCII en Qt?
Hay una función QString
llamada desde fromUtf8
que toma un const char*
:
QString str = QString::fromUtf8(content.c_str());
Por lo general, la mejor manera de hacer la conversión es usar el método desde fromUtf8 , pero el problema es cuando tienes cadenas dependientes de la configuración regional.
En estos casos, es preferible utilizar fromLocal8Bit . Ejemplo:
std::string str = "ëxample";
QString qs = QString::fromLocal8Bit(str.c_str());
QString::fromStdString(content)
es mejor ya que es más robusto. También tenga en cuenta que si std::string
está codificado en UTF-8, entonces debería dar exactamente el mismo resultado que QString::fromUtf8(content.data(), int(content.size()))
.