Sur cette page

L'Unicode dans Qt

Unicode est la norme d'encodage du texte pour la quasi-totalité des langues parlées dans le monde. Il est aujourd'hui utilisé comme encodage natif du texte sur la plupart des systèmes d'exploitation modernes. La principale exception est Microsoft Windows, qui dispose toujours d'un système double prenant en charge à la fois les pages de codes et Unicode pour les applications.

Les classes Qt pour manipuler les chaînes de caractères

Ces classes sont utiles lorsque vous travaillez avec des données de type chaîne de caractères. Pour plus d’informations sur l’affichage du texte, consultez la présentation du traitement du texte enrichi; si vos données de type chaîne de caractères sont au format XML, consultez la présentation du traitement XML.

QAnyStringView

Vue unifiée des chaînes Latin-1, UTF-8 ou UTF-16 avec un sous-ensemble en lecture seule de l’API QString

QByteArray

Tableau d'octets

QByteArrayList

Liste de tableaux d’octets

QByteArrayMatcher

Contient une séquence d’octets pouvant être rapidement comparée dans un tableau d’octets

QByteArrayView

Vue sur un tableau d’octets grâce à un sous-ensemble en lecture seule de l’API QByteArray

QChar

Caractère Unicode 16 bits

QCollator

Compare des chaînes de caractères selon un algorithme de classement localisé

QCollatorSortKey

Peut être utilisé pour accélérer le classement des chaînes de caractères

QLatin1Char

Caractère ASCII/Latin-1 8 bits

QLatin1StringMatcher

Recherche optimisée d’une sous-chaîne dans un texte Latin-1

QLatin1StringView

Enveloppe légère autour d’un littéral de chaîne encodé en US-ASCII/Latin-1

QLocale

Effectue la conversion entre les nombres et leurs représentations sous forme de chaînes de caractères dans différentes langues

QRegularExpression

Correspondance de motifs à l’aide d’expressions régulières

QRegularExpressionMatch

Résultats d’une correspondance entre un objet QRegularExpression et une chaîne de caractères

QRegularExpressionMatchIterator

Itérateur sur les résultats d’une correspondance globale d’un objet QRegularExpression avec une chaîne de caractères

QStaticByteArrayMatcher

Version compilée de QByteArrayMatcher

QStaticLatin1StringMatcher

Version « à la compilation » de QLatin1StringMatcher

QString

Chaîne de caractères Unicode

QStringConverter

Classe de base pour l'encodage et le décodage de texte

QStringDecoder

Décodeur de texte basé sur les états

QStringEncoder

Codeur de texte à états

QStringList

Liste de chaînes de caractères

QStringMatcher

Contient une séquence de caractères pouvant être rapidement mise en correspondance dans une chaîne Unicode

QStringRef

Enveloppe légère autour des sous-chaînes de QString

QStringTokenizer

Divise les chaînes en tokens selon des séparateurs donnés

QStringView

Vue unifiée des chaînes UTF-16 avec un sous-ensemble en lecture seule de l'API QString

QTextBoundaryFinder

Moyen de détecter les limites de texte Unicode dans une chaîne

QTextStream

Interface pratique pour la lecture et l'écriture de texte

QUtf8StringView

Vue unifiée des chaînes UTF-8 grâce à un sous-ensemble en lecture seule de l'API QString

Informations sur l'Unicode sur le Web

Le Consortium Unicode met à disposition un certain nombre de documents, notamment

Unicode dans Qt

Dans Qt, ainsi que dans la plupart des applications qui utilisent Qt, la plupart ou la totalité des chaînes de caractères visibles par l'utilisateur sont stockées au format Unicode. Qt fournit :

  • La conversion vers/depuis les encodages hérités pour les opérations d'entrée-sortie de fichiers : voir QTextCodec et QTextStream.
  • La prise en charge des méthodes de saisie et des claviers spécifiques à chaque locale.
  • Une classe de chaînes de caractères, QString, qui stocke les caractères Unicode, avec prise en charge de la migration depuis les chaînes C, y compris la conversion rapide vers et depuis les formats UTF-8, ISO8859-1 et US-ASCII, ainsi que toutes les opérations habituelles sur les chaînes de caractères.
  • Contrôles d’interface utilisateur compatibles Unicode.
  • Segmentation de texte conforme à Unicode (QTextBoundaryFinder)
  • Saut de ligne et rendu de texte conformes à Unicode

Pour tirer pleinement parti d'Unicode, nous recommandons d'utiliser QString pour stocker toutes les chaînes visibles par l'utilisateur, et d'effectuer toutes les opérations d'E/S sur les fichiers texte à l'aide de QTextStream.

Tous les arguments de fonction dans Qt susceptibles d’être des chaînes visibles par l’utilisateur, tels que ` QLabel::setText()` et bien d’autres, acceptent des objets de type ` const QString &`. La fonction ` QString ` fournit un transtypage implicite depuis ` const char * `, de sorte que des expressions telles que

label->setText("Password:");

fonctionnent. Il existe également une fonction, QObject::tr(), qui offre une prise en charge de la conversion, comme ceci :

label->setText(tr("Password:"));

QObject::tr() effectue un mappage de const char * vers une chaîne Unicode, et utilise des objets QTranslator installables pour effectuer ce mappage.

Qt fournit un certain nombre de classes d'QTextCodec intégrées, c'est-à-dire des classes qui savent effectuer la conversion entre l'Unicode et les encodages hérités afin de prendre en charge les programmes qui doivent communiquer avec d'autres programmes ou lire/écrire des fichiers dans des formats hérités.

La conversion vers/depuis l’« const char * » utilise l’UTF-8. Cependant, les applications peuvent facilement trouver des codecs pour d’autres locales et configurer n’importe quel fichier ouvert ou connexion réseau pour qu’il utilise un codec spécifique.

US-ASCII et ISO-8859-1 étant très répandus, il existe également des fonctions particulièrement rapides pour la conversion vers et depuis ces encodages. Par exemple, pour ouvrir l’icône d’une application, on pourrait procéder ainsi :

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

ou

QFile file(QLatin1String("appicon.png"));

Qt prend en charge l'affichage du texte dans la plupart des langues écrites dans le monde. La liste détaillée des systèmes d'écriture pris en charge dépend en partie de la prise en charge par le système d'exploitation et de la disponibilité des polices sur le système cible.

Voir également Internationalisation avec 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.