Qtのユニコード

Unicodeは、世界で話されているほとんどすべての言語のテキストをエンコードするための標準です。今日では、ほとんどの最新のオペレーティング・システムで、テキストのネイティブ・エンコーディングとして使用されています。主な例外はMicrosoft Windowsで、アプリケーションのコードページとUnicodeをサポートする二重システムになっています。

Qtの文字列を扱うクラス

これらのクラスは文字列データを扱うときに関連します。テキストのレンダリングについてはリッチテキスト処理の概要を、文字列データが XML の場合はXML 処理の概要を参照してください。

QAnyStringView

QString API の読み取り専用サブセットを使用した Latin-1、UTF-8、または UTF-16 文字列の統一ビュー

QByteArray

バイト配列

QByteArrayList

バイト配列のリスト

QByteArrayMatcher

バイト配列で素早くマッチできるバイト列を保持します。

QByteArrayView

QByteArray API の読み取り専用サブセットを使用してバイト配列を表示します。

QChar

16 ビット Unicode 文字

QCollator

ローカライズされた照合アルゴリズムに従って文字列を比較します。

QCollatorSortKey

文字列の照合を高速化するために使用可能

QLatin1Char

8 ビット ASCII/Latin-1 文字

QLatin1StringMatcher

Latin-1 テキストの部分文字列の最適化検索

QLatin1StringView

US-ASCII/Latin-1エンコードされた文字列リテラルの薄いラッパー

QLocale

様々な言語における数値とその文字列表現の変換

QRegularExpression

正規表現を使ったパターンマッチ

QRegularExpressionMatch

文字列に対するQRegularExpressionのマッチング結果

QRegularExpressionMatchIterator

QRegularExpressionオブジェクトの文字列に対するグローバルマッチの結果のイテレータ

QStaticByteArrayMatcher

QByteArrayMatcher のコンパイル時バージョン

QStaticLatin1StringMatcher

QLatin1StringMatcher のコンパイル時バージョン

QString

Unicode 文字列

QStringList

文字列のリスト

QStringMatcher

Unicode 文字列内で素早くマッチングできる文字のシーケンスを保持します。

QStringRef

QString 部分文字列の薄いラッパー

QStringTokenizer

与えられたセパレータに沿って文字列をトークンに分割します。

QStringView

QString API の読み取り専用サブセットによる UTF-16 文字列の統一ビュー

QTextBoundaryFinder

文字列内の Unicode テキスト境界を見つける方法

QTextStream

テキストの読み書きに便利なインタフェース

QUtf8StringView

QString API の読み取り専用サブセットによる UTF-8 文字列の統一ビュー

Web上のUnicodeに関する情報

Unicodeコンソーシアムは、以下を含む多くの文書を公開しています。

Qt における Unicode

Qt では、そして Qt を使用するほとんどのアプリケーションでは、ユーザーから見える文字列のほとんど、あるいはすべてが Unicode を使用して格納されます。Qt は以下を提供します:

  • ファイル入出力におけるレガシーエンコーディングとの変換:QTextCodecQTextStream を参照してください。
  • ロケール固有の入力メソッドとキーボードのサポート。
  • QStringUTF-8, ISO8859-1, US-ASCII への高速変換を含む C 文字列からの移行をサポートし、通常の文字列操作のすべてをサポートします。
  • Unicode対応UIコントロール。
  • Unicode 準拠のテキスト分割 (QTextBoundaryFinder)
  • Unicode準拠の改行とテキストレンダリング

Unicode の恩恵を十分に受けるために、ユーザーから見える文字列の保存にはQString を使用し、テキストファイルの入出力にはQTextStream を使用することをお勧めします。

QString const char * Qt の関数の引数のうち、ユーザから見える文字列になる可能性のあるもの、QLabel::setText() やその他多くの関数はconst QString &を取ります。

label->setText("Password:");

などが動作します。また、QObject::tr() という関数があり、このように翻訳をサポートしています:

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

QObject::tr() は、const char * から Unicode 文字列にマッピングし、インストール可能なQTranslator オブジェクトを使用してマッピングを行います。

QTextCodec つまり、他のプログラムとの対話や、レガシーなファイル形式でのファイルの読み書きが必要なプログラムをサポートするために、Unicodeとレガシーなエンコーディング間の変換方法を知っているクラスです。

const char * 、UTF-8を使用します。しかし、アプリケーションは他のロケール用のコーデックを簡単に見つけることができ、開いているファイルやネットワーク接続で特別なコーデックを使うように設定することができます。

US-ASCIIとISO-8859-1は非常に一般的であるため、これらとの間でマッピングを行うための特に高速な関数も用意されている。例えば、アプリケーションのアイコンを開くには、次のようにする:

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

または

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

Qt は、世界中で使われているほとんどの言語のテキストのレンダリングをサポートしています。サポートされる文字システムの詳細なリストは、オペレーティングシステムのサポートとターゲットシステムで利用可能なフォントに依存します。

Qt による国際化」も参照してください

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。