En esta página

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.

QAnyStringView

Vista unificada de cadenas Latin-1, UTF-8 o UTF-16 con un subconjunto de sólo lectura de la API QString

QByteArray

Matriz de bytes

QByteArrayList

Lista de matrices de bytes

QByteArrayMatcher

Contiene una secuencia de bytes que pueden emparejarse rápidamente en una matriz de bytes

QByteArrayView

Vista de una matriz de bytes con un subconjunto de sólo lectura de la API QByteArray

QChar

Carácter Unicode de 16 bits

QCollator

Compara cadenas según un algoritmo de cotejo localizado

QCollatorSortKey

Puede utilizarse para acelerar la intercalación de cadenas

QLatin1Char

Carácter ASCII/Latin-1 de 8 bits

QLatin1StringMatcher

Búsqueda optimizada de subcadenas en texto Latin-1

QLatin1StringView

Envoltura fina alrededor de un literal de cadena codificado en US-ASCII/Latin-1

QLocale

Convierte entre números y sus representaciones de cadena en varios idiomas

QRegularExpression

Comparación de patrones mediante expresiones regulares

QRegularExpressionMatch

Resultados de la comparación de una QRegularExpression con una cadena de caracteres

QRegularExpressionMatchIterator

Iterador de los resultados de la comparación global de un objeto QRegularExpression con una cadena de caracteres

QStaticByteArrayMatcher

Versión en tiempo de compilación de QByteArrayMatcher

QStaticLatin1StringMatcher

Versión en tiempo de compilación de QLatin1StringMatcher

QString

Cadena de caracteres Unicode

QStringConverter

Clase base para codificar y descodificar texto

QStringDecoder

Descodificador de texto basado en estados

QStringEncoder

Codificador de texto basado en estados

QStringList

Lista de cadenas

QStringMatcher

Contiene una secuencia de caracteres que pueden emparejarse rápidamente en una cadena Unicode

QStringRef

Envoltura fina alrededor de las subcadenas QString

QStringTokenizer

Divide las cadenas en tokens a lo largo de separadores dados

QStringView

Vista unificada de cadenas UTF-16 con un subconjunto de sólo lectura de la API QString

QTextBoundaryFinder

Manera de encontrar límites de texto Unicode en una cadena

QTextStream

Interfaz práctica para leer y escribir texto

QUtf8StringView

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

QFile file(QString::fromLatin1("appicon.png"));

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.