Auf dieser Seite

Unicode in Qt

Unicode ist der Standard für die Kodierung von Text in fast allen Sprachen der Welt. Heutzutage wird es auf den meisten modernen Betriebssystemen als native Kodierung für Text verwendet. Die wichtigste Ausnahme bildet Microsoft Windows, das nach wie vor ein duales System nutzt, das sowohl Codepages als auch Unicode für Anwendungen unterstützt.

Qt-Klassen für die Arbeit mit Zeichenketten

Diese Klassen sind relevant, wenn Sie mit Zeichenkettendaten arbeiten. Informationen zur Darstellung von Text finden Sie in der Übersicht zur Rich-Text-Verarbeitung; sollten Ihre Zeichenkettendaten im XML-Format vorliegen, lesen Sie die Übersicht zur XML-Verarbeitung.

QAnyStringView

Einheitliche Darstellung von Latin-1-, UTF-8- oder UTF-16-Zeichenketten mit einer schreibgeschützten Teilmenge der QString-API

QByteArray

Byte-Array

QByteArrayList

Liste von Byte-Arrays

QByteArrayMatcher

Enthält eine Folge von Bytes, die in einem Byte-Array schnell abgeglichen werden können

QByteArrayView

Ansicht eines Byte-Arrays mit einer schreibgeschützten Teilmenge der QByteArray-API

QChar

16-Bit-Unicode-Zeichen

QCollator

Vergleicht Zeichenfolgen gemäß einem lokalisierten Sortieralgorithmus

QCollatorSortKey

Kann zur Beschleunigung der Zeichenfolgen-Sortierung verwendet werden

QLatin1Char

8-Bit-ASCII-/Latin-1-Zeichen

QLatin1StringMatcher

Optimierte Suche nach Teilzeichenfolgen in Latin-1-Text

QLatin1StringView

Schlanke Hülle um ein US-ASCII/Latin-1-kodiertes Zeichenfolgenliteral

QLocale

Konvertiert zwischen Zahlen und deren Zeichenfolgendarstellungen in verschiedenen Sprachen

QRegularExpression

Musterabgleich mithilfe regulärer Ausdrücke

QRegularExpressionMatch

Die Ergebnisse eines Abgleichs eines QRegularExpression-Objekts mit einer Zeichenkette

QRegularExpressionMatchIterator

Iterator über die Ergebnisse eines globalen Abgleichs eines QRegularExpression-Objekts mit einer Zeichenkette

QStaticByteArrayMatcher

Kompilierungszeit-Version von QByteArrayMatcher

QStaticLatin1StringMatcher

Kompilierungszeit-Version von QLatin1StringMatcher

QString

Unicode-Zeichenkette

QStringConverter

Basisklasse für die Kodierung und Dekodierung von Text

QStringDecoder

Zustandsbasierter Dekoder für Text

QStringEncoder

Zustandsbasierter Encoder für Text

QStringList

Liste von Zeichenfolgen

QStringMatcher

Enthält eine Folge von Zeichen, die in einer Unicode-Zeichenkette schnell abgeglichen werden können

QStringRef

Schlanke Hülle um QString-Teilstrings

QStringTokenizer

Teilt Zeichenfolgen anhand vorgegebener Trennzeichen in Tokens auf

QStringView

Einheitliche Ansicht auf UTF-16-Zeichenfolgen mit einer schreibgeschützten Teilmenge der QString-API

QTextBoundaryFinder

Möglichkeit, Unicode-Textgrenzen in einer Zeichenkette zu ermitteln

QTextStream

Praktische Schnittstelle zum Lesen und Schreiben von Text

QUtf8StringView

Einheitliche Darstellung von UTF-8-Zeichenketten mit einer schreibgeschützten Teilmenge der QString-API

Informationen zu Unicode im Web

Das Unicode-Konsortium stellt eine Reihe von Dokumenten zur Verfügung, darunter

Unicode in Qt

In Qt und in den meisten Anwendungen, die Qt verwenden, werden die meisten oder alle für den Benutzer sichtbaren Zeichenfolgen im Unicode-Format gespeichert. Qt bietet:

  • Konvertierung in/aus älteren Kodierungen für die Datei-E/A: siehe QTextCodec und QTextStream.
  • Unterstützung für lokalisierungsspezifische Eingabemethoden und Tastaturen.
  • Eine Zeichenfolgenklasse, QString, die Unicode-Zeichen speichert und die Migration von C-Zeichenfolgen unterstützt, einschließlich schneller Konvertierung in und aus UTF-8, ISO-8859-1 und US-ASCII sowie aller üblichen Zeichenfolgenoperationen.
  • Unicode-fähige UI-Steuerelemente.
  • Unicode-konforme Textsegmentierung (QTextBoundaryFinder)
  • Unicode-konforme Zeilenumbrüche und Textdarstellung

Um die Vorteile von Unicode voll auszuschöpfen, empfehlen wir, alle für den Benutzer sichtbaren Zeichenfolgen mit QString zu speichern und die gesamte Textdatei-E/A über QTextStream durchzuführen.

Alle Funktionsargumente in Qt, bei denen es sich um für den Benutzer sichtbare Zeichenfolgen handeln kann – beispielsweise ` QLabel::setText()` und viele andere –, erwarten ` const QString &`-Objekte. ` QString ` bietet eine implizite Umwandlung von ` const char * `, sodass beispielsweise

label->setText("Password:");

funktionieren. Es gibt außerdem eine Funktion, ` QObject::tr()`, die Übersetzungsunterstützung bietet, und zwar folgendermaßen:

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

QObject::tr() bildet von const char * auf eine Unicode-Zeichenkette ab und verwendet dabei installierbare QTranslator -Objekte für die Zuordnung.

Qt stellt eine Reihe integrierter „ QTextCodec “-Klassen bereit, d. h. Klassen, die die Konvertierung zwischen Unicode und älteren Kodierungen beherrschen, um Programme zu unterstützen, die mit anderen Programmen kommunizieren oder Dateien in älteren Dateiformaten lesen bzw. schreiben müssen.

Die Konvertierung zu/von „ const char * “ erfolgt über UTF-8. Anwendungen können jedoch problemlos Codecs für andere Locales finden und jede geöffnete Datei oder Netzwerkverbindung so einstellen, dass ein spezieller Codec verwendet wird.

Da US-ASCII und ISO-8859-1 so weit verbreitet sind, gibt es auch besonders schnelle Funktionen für die Konvertierung in diese und aus diesen Formaten. Um beispielsweise das Symbol einer Anwendung zu öffnen, könnte man Folgendes tun:

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

oder

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

Qt unterstützt die Darstellung von Text in den meisten weltweit geschriebenen Sprachen. Die detaillierte Liste der unterstützten Schriftsysteme hängt ein wenig von der Betriebssystemunterstützung und der Verfügbarkeit von Schriftarten auf dem Zielsystem ab.

Siehe auch Internationalisierung mit 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.