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.
Vue unifiée des chaînes 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 pouvant être rapidement comparée dans un tableau d’octets | |
Vue sur un tableau d’octets grâce à un sous-ensemble en lecture seule de l’API QByteArray | |
Caractère Unicode 16 bits | |
Compare des chaînes de caractères selon un algorithme de classement localisé | |
Peut être utilisé pour accélérer le classement des chaînes de caractères | |
Caractère ASCII/Latin-1 8 bits | |
Recherche optimisée d’une sous-chaîne dans un texte Latin-1 | |
Enveloppe légère autour d’un littéral de chaîne encodé en US-ASCII/Latin-1 | |
Effectue la conversion entre les nombres et leurs représentations sous forme de chaînes de caractères dans différentes langues | |
Correspondance de motifs à l’aide d’expressions régulières | |
Résultats d’une correspondance entre un objet QRegularExpression et 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 compilée de QByteArrayMatcher | |
Version « à la compilation » de QLatin1StringMatcher | |
Chaîne de caractères Unicode | |
Classe de base pour l'encodage et le décodage de texte | |
Décodeur de texte basé sur les états | |
Codeur de texte à états | |
Liste de chaînes de caractères | |
Contient une séquence de caractères pouvant être rapidement mise en correspondance dans une chaîne Unicode | |
Enveloppe légère autour des sous-chaînes de QString | |
Divise les chaînes en tokens selon des 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 détecter les limites de texte Unicode dans une chaîne | |
Interface pratique pour la lecture et l'écriture de texte | |
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
- La version actuelle de la norme
- Une introduction technique à l’Unicode
- La page d'accueil de la norme
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 :
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.