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.
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 | |
Tableau d'octets | |
Liste de tableaux d'octets | |
Contient une séquence d'octets qui peuvent être rapidement mis en correspondance dans un tableau d'octets. | |
Vue sur un tableau d'octets avec un sous-ensemble en lecture seule de l'API QByteArray | |
Caractère Unicode 16 bits | |
Compare les chaînes de caractères en fonction d'un algorithme de collation localisé | |
Peut être utilisé pour accélérer le collationnement des chaînes de caractères | |
Caractère ASCII/Latin-1 8 bits | |
Recherche optimisée de sous-chaînes dans un texte en latin-1 | |
Enveloppe fine autour d'un littéral de chaîne codé en ASCII/Latin-1 | |
Conversion entre les nombres et leurs représentations sous forme de chaîne dans différentes langues | |
Correspondance de motifs à l'aide d'expressions régulières | |
Résultats de la mise en correspondance d'une QRegularExpression avec une chaîne de caractères | |
Itérateur sur les résultats d'une correspondance globale d'un objet QRegularExpression avec une chaîne de caractères | |
Version de compilation de QByteArrayMatcher | |
Version de compilation de QLatin1StringMatcher | |
Chaîne de caractères Unicode | |
Classe de base pour le codage et le décodage du texte | |
Décodeur de texte basé sur des états | |
Encodeur de texte basé sur un état | |
Liste de chaînes de caractères | |
Contient une séquence de caractères pouvant faire l'objet d'une correspondance rapide dans une chaîne Unicode. | |
Enveloppe fine autour des sous-chaînes QString | |
Divise les chaînes en jetons en fonction de séparateurs donnés | |
Vue unifiée des chaînes UTF-16 avec un sous-ensemble en lecture seule de l'API QString | |
Moyen de trouver les limites d'un texte Unicode dans une chaîne de caractères | |
Interface pratique pour lire et écrire du texte | |
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
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.