Qtのユニコード
Unicodeは、世界で話されているほとんどすべての言語のテキストをエンコードするための標準です。今日では、ほとんどの最新のオペレーティング・システムで、テキストのネイティブ・エンコーディングとして使用されています。主な例外はMicrosoft Windowsで、アプリケーションのコードページとUnicodeをサポートする二重システムになっています。
Qtの文字列を扱うクラス
これらのクラスは文字列データを扱うときに関連します。テキストのレンダリングについてはリッチテキスト処理の概要を、文字列データが XML の場合はXML 処理の概要を参照してください。
QString API の読み取り専用サブセットを使用した、Latin-1、UTF-8、または UTF-16 文字列の統一ビュー | |
バイト配列 | |
バイト配列のリスト | |
バイト配列で素早くマッチできるバイト列を保持します。 | |
QByteArray API の読み取り専用サブセットを使用してバイト配列を表示します。 | |
16 ビット Unicode 文字 | |
ローカライズされた照合アルゴリズムに従って文字列を比較します。 | |
文字列の照合を高速化するために使用可能 | |
8 ビット ASCII/Latin-1 文字 | |
Latin-1 テキストの部分文字列の最適化検索 | |
US-ASCII/Latin-1エンコードされた文字列リテラルの薄いラッパー | |
様々な言語における数値とその文字列表現の変換 | |
正規表現を使ったパターンマッチ | |
文字列に対するQRegularExpressionのマッチング結果 | |
QRegularExpressionオブジェクトの文字列に対するグローバルマッチの結果のイテレータ | |
QByteArrayMatcher のコンパイル時バージョン | |
QLatin1StringMatcher のコンパイル時バージョン | |
Unicode 文字列 | |
文字列のリスト | |
Unicode 文字列内で素早くマッチングできる文字のシーケンスを保持します。 | |
QString 部分文字列の薄いラッパー | |
与えられたセパレータに沿って文字列をトークンに分割します。 | |
QString API の読み取り専用サブセットによる UTF-16 文字列の統一ビュー | |
文字列内の Unicode テキスト境界を見つける方法 | |
テキストの読み書きに便利なインタフェース | |
QString API の読み取り専用サブセットによる UTF-8 文字列の統一ビュー |
Web上のUnicodeに関する情報
Unicodeコンソーシアムは、以下を含む多くの文書を公開しています。
Qt における Unicode
Qt では、そして Qt を使用するほとんどのアプリケーションでは、ユーザーから見える文字列のほとんど、あるいはすべてが Unicode を使用して格納されます。Qt は以下を提供します:
- ファイル入出力におけるレガシーエンコーディングとの変換:QTextCodec とQTextStream を参照してください。
- ロケール固有の入力メソッドとキーボードのサポート。
- 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 オブジェクトを使用してマッピングを行います。
Qt には、組み込みのQTextCodec クラスが多数用意されています。つまり、Unicode とレガシーエンコーディング間の変換方法を知っているクラスで、他のプログラムとの対話や、レガシーファイルフォーマットでのファイルの読み書きが必要なプログラムをサポートします。
const char *
との変換には UTF-8 を使用します。しかし、アプリケーションは他のロケール用のコーデックを簡単に見つけることができ、開いているファイルやネットワーク接続で特別なコーデックを使うように設定することができます。
US-ASCIIとISO-8859-1は非常に一般的であるため、これらとの間でマッピングを行うための特に高速な関数も用意されている。例えば、アプリケーションのアイコンを開くには、次のようにする:
または
QFile file(QLatin1String("appicon.png"));
Qt は、世界中で使われているほとんどの言語のテキストのレンダリングをサポートしています。サポートされる文字システムの詳細なリストは、オペレーティングシステムのサポートとターゲットシステムで利用可能なフォントに依存します。
Qt による国際化も参照してください 。
© 2025 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.