Unicode en Qt
Unicode es el estándar para codificar texto en casi todos los idiomas que se hablan en el mundo. Hoy en día se utiliza como codificación nativa para el texto en la mayoría de los sistemas operativos modernos. La mayor excepción es Microsoft Windows que todavía tiene un sistema dual que soporta páginas de código y Unicode para las aplicaciones.
Clases de Qt para trabajar con cadenas
Estas clases son relevantes cuando se trabaja con datos de cadenas. Para obtener información sobre la representación de texto, consulte la descripción general de Procesamiento de Texto Enriquecido, y si sus datos de cadena están en XML, consulte la descripción general de Procesamiento XML.
Vista unificada de cadenas Latin-1, UTF-8 o UTF-16 con un subconjunto de sólo lectura de la API QString | |
Matriz de bytes | |
Lista de matrices de bytes | |
Contiene una secuencia de bytes que pueden emparejarse rápidamente en una matriz de bytes | |
Vista de una matriz de bytes con un subconjunto de sólo lectura de la API QByteArray | |
Carácter Unicode de 16 bits | |
Compara cadenas según un algoritmo de cotejo localizado | |
Puede utilizarse para acelerar la intercalación de cadenas | |
Carácter ASCII/Latin-1 de 8 bits | |
Búsqueda optimizada de subcadenas en texto Latin-1 | |
Envoltura fina alrededor de un literal de cadena codificado en US-ASCII/Latin-1 | |
Convierte entre números y sus representaciones de cadena en varios idiomas | |
Comparación de patrones mediante expresiones regulares | |
Resultados de la comparación de una QRegularExpression con una cadena de caracteres | |
Iterador de los resultados de la comparación global de un objeto QRegularExpression con una cadena de caracteres | |
Versión en tiempo de compilación de QByteArrayMatcher | |
Versión en tiempo de compilación de QLatin1StringMatcher | |
Cadena de caracteres Unicode | |
Clase base para codificar y descodificar texto | |
Descodificador de texto basado en estados | |
Codificador de texto basado en estados | |
Lista de cadenas | |
Contiene una secuencia de caracteres que pueden emparejarse rápidamente en una cadena Unicode | |
Envoltura fina alrededor de las subcadenas QString | |
Divide las cadenas en tokens a lo largo de separadores dados | |
Vista unificada de cadenas UTF-16 con un subconjunto de sólo lectura de la API QString | |
Manera de encontrar límites de texto Unicode en una cadena | |
Interfaz práctica para leer y escribir texto | |
Vista unificada de cadenas UTF-8 con un subconjunto de sólo lectura de la API QString |
Información sobre Unicode en la Web
El Consorcio Unic ode tiene varios documentos disponibles, entre ellos
Unicode en Qt
En Qt, y en la mayoría de las aplicaciones que utilizan Qt, la mayoría o todas las cadenas visibles por el usuario se almacenan utilizando Unicode. Qt proporciona:
- Traducción a/desde codificación heredada para E/S de archivos: véase QTextCodec y QTextStream.
- Soporte para métodos de entrada y teclados específicos de cada localización.
- Una clase de cadena, QString, que almacena caracteres Unicode, con soporte para migrar desde cadenas C incluyendo traducción rápida desde y hacia UTF-8, ISO8859-1 y US-ASCII, y todas las operaciones de cadena habituales.
- Controles de interfaz de usuario compatibles con Unicode.
- Segmentación de texto compatible con Unicode (QTextBoundaryFinder)
- Salto de línea y representación de texto compatibles con Unicode.
Para beneficiarse plenamente de Unicode, se recomienda utilizar QString para almacenar todas las cadenas visibles por el usuario, y realizar todas las E/S de archivos de texto utilizando QTextStream.
Todos los argumentos de función en Qt que pueden ser cadenas visibles por el usuario, QLabel::setText() y muchos otros, toman const QString &s. QString proporciona un casting implícito desde const char * para que cosas como
label->setText("Password:");
funcionen. También hay una función, QObject::tr(), que proporciona soporte de traducción, así:
label->setText(tr("Password:"));
QObject::tr() mapea desde const char * a una cadena Unicode, y usa objetos instalables QTranslator para hacer el mapeo.
Qt proporciona una serie de clases QTextCodec incorporadas, es decir, clases que saben cómo traducir entre Unicode y codificaciones heredadas para dar soporte a programas que deben hablar con otros programas o leer/escribir archivos en formatos de archivo heredados.
La conversión a/desde const char * utiliza un UTF-8. Sin embargo, las aplicaciones pueden encontrar fácilmente códecs para otras configuraciones regionales y configurar cualquier archivo abierto o conexión de red para que utilice un códec especial.
Dado que US-ASCII e ISO-8859-1 son tan comunes, también existen funciones especialmente rápidas para mapear hacia y desde ellos. Por ejemplo, para abrir el icono de una aplicación se puede hacer esto
o
QFile file(QLatin1String("appicon.png"));
Qt soporta la representación de texto en la mayoría de los idiomas escritos en el mundo. La lista detallada de sistemas de escritura soportados depende un poco del soporte del sistema operativo y de la disponibilidad de fuentes en el sistema de destino.
Ver también Internacionalización con Qt.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.