Sur cette page

Unicode dans Qt

Unicode est la norme d'encodage du texte dans presque toutes les langues parlées dans le monde. Il est aujourd'hui utilisé comme encodage natif pour le texte sur la plupart des systèmes d'exploitation modernes. La principale exception est Microsoft Windows qui possède encore un double système supportant les pages de code et l'Unicode pour les applications.

Classes de Qt pour travailler avec des chaînes de caractères

Ces classes sont utiles pour travailler avec des données de type chaîne de caractères. Pour plus d'informations sur le rendu de texte, voir la vue d'ensemble du traitement de texte riche, et si vos données de chaîne sont en XML, voir la vue d'ensemble du traitement XML.

QAnyStringView

Vue unifiée des chaînes de caractères 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 qui peuvent être rapidement mis en correspondance dans un tableau d'octets.

QByteArrayView

Vue sur un tableau d'octets avec un sous-ensemble en lecture seule de l'API QByteArray

QChar

Caractère Unicode 16 bits

QCollator

Compare les chaînes de caractères en fonction d'un algorithme de collation localisé

QCollatorSortKey

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

QLatin1Char

Caractère ASCII/Latin-1 8 bits

QLatin1StringMatcher

Recherche optimisée de sous-chaînes dans un texte en latin-1

QLatin1StringView

Enveloppe fine autour d'un littéral de chaîne codé en ASCII/Latin-1

QLocale

Conversion entre les nombres et leurs représentations sous forme de chaîne dans différentes langues

QRegularExpression

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

QRegularExpressionMatch

Résultats de la mise en correspondance d'une QRegularExpression avec 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 de compilation de QByteArrayMatcher

QStaticLatin1StringMatcher

Version de compilation de QLatin1StringMatcher

QString

Chaîne de caractères Unicode

QStringConverter

Classe de base pour le codage et le décodage du texte

QStringDecoder

Décodeur de texte basé sur des états

QStringEncoder

Encodeur de texte basé sur un état

QStringList

Liste de chaînes de caractères

QStringMatcher

Contient une séquence de caractères pouvant faire l'objet d'une correspondance rapide dans une chaîne Unicode.

QStringRef

Enveloppe fine autour des sous-chaînes QString

QStringTokenizer

Divise les chaînes en jetons en fonction de 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 trouver les limites d'un texte Unicode dans une chaîne de caractères

QTextStream

Interface pratique pour lire et écrire du texte

QUtf8StringView

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

Informations sur Unicode sur le web

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

Unicode dans Qt

Dans Qt, et dans la plupart des applications qui utilisent Qt, la plupart ou toutes les chaînes visibles par l'utilisateur sont stockées en utilisant Unicode. Qt fournit

  • La traduction vers/depuis l'ancien encodage pour les entrées/sorties de fichiers : voir QTextCodec et QTextStream.
  • La prise en charge des méthodes d'entrée et des claviers spécifiques à la région.
  • Une classe de chaîne, QString, qui stocke les caractères Unicode, avec la prise en charge de la migration depuis les chaînes C, y compris la traduction rapide vers et depuis UTF-8, ISO8859-1 et US-ASCII, et toutes les opérations habituelles sur les chaînes.
  • Contrôles d'interface utilisateur compatibles avec Unicode.
  • Segmentation du texte conforme à Unicode (QTextBoundaryFinder)
  • le retour à la ligne et le rendu du texte conformes à Unicode.

Pour bénéficier pleinement d'Unicode, nous recommandons d'utiliser QString pour stocker toutes les chaînes visibles par l'utilisateur, et d'effectuer toutes les entrées/sorties de fichiers texte à l'aide de QTextStream.

Tous les arguments de fonction dans Qt XML qui peuvent être des chaînes visibles par l'utilisateur, QLabel::setText() et beaucoup d'autres, prennent const QString &s. QString fournit un casting implicite à partir de const char * de sorte que des choses comme

label->setText("Password:");

fonctionnent. Il existe également une fonction, QObject::tr(), qui prend en charge la traduction, comme ceci :

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

QObject::tr() établit une correspondance entre const char * et une chaîne Unicode, et utilise des objets QTranslator installables pour effectuer la correspondance.

Qt fournit un certain nombre de classes QTextCodec intégrées, c'est-à-dire des classes qui savent comment traduire entre Unicode et les encodages hérités pour soutenir les programmes qui doivent parler à d'autres programmes ou lire/écrire des fichiers dans des formats de fichiers hérités.

La conversion de/vers const char * utilise un UTF-8. Cependant, les applications peuvent facilement trouver des codecs pour d'autres locales et configurer tout fichier ouvert ou toute connexion réseau pour utiliser un codec spécial.

Les formats US-ASCII et ISO-8859-1 étant très répandus, il existe également des fonctions particulièrement rapides pour les convertir. Par exemple, pour ouvrir l'icône d'une application, on peut faire ceci

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

ou

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

Qt prend en charge le rendu 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 un peu de la prise en charge par le système d'exploitation et de la disponibilité des polices sur le système cible.

Voir aussi 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.