QTextCodec Classリファレンスマニュアル
ホームページ・すべてのネーミングスペース・すべてのクラス・主要なクラス・グループのクラス・モジュール・関数
漢化人員及びログ
QTextCodec Classリファレンスマニュアル[QtCore module]
QTextCodecクラスは文字符号化変換を提供する.More... #include <QTextCodec>
Note:このようなすべての関数は、setCodecForTr()、setCodecForCStrings()、QTextCodec()、および~QTextCodec()を除くリロード可能である.
#include <QTextCodec>
Public Types
Public Functions
Static Public Members
Protected Functions
詳細な説明
QTextCodecクラスは文字間の符号化変換を提供する.
QtはUnicodeで記憶する、文字列を操作する.多くの場合、符号化を知らないでデータを処理することを望むかもしれません.例えば、Japanese文書の多くはShift-JIS or ISO 2022-JPで記憶するが、RussianユーザはKOI 8-R or Windows-1211を常用する.
Qtは、非UnicodeフォーマットのUnicodeへの変換を支援するQTextCodecクラスを提供する.独自のコードクラスを作成することもできます
サポートされているコードは次のとおりです.
QTextCodecsは、ローカルの符号化をUnicodeに変換するためによく用いる.Russian KOI 8-Rコードの文字列があるとしたら、Unicodeに変換したいです.最も簡単な方法は次のとおりです.
QByteArray encodedString = "...";
QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
QString string = codec->toUnicode(encodedString);
実行後、stringはUnicodeに変換するテキストを保存する.Unicode文字列をローカル符号化に変換するのも簡単です.
QString string = "...";
QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
QByteArray encodedString = codec->fromUnicode(string);
QTextStreamとそのsetCodec()関数を用いて、様々な符号化を読み書きする.QTextCodecのファイルI/Oへの読み書きの例Codecsを表示する.
ブロックデータを変換しようとする場合、例えば、ネットワークから取得するデータに注意すべきである.この場合、マルチバイト文字をいくつかのブロックに分けることができる.文字が失われたり、すべての変換に失敗したりします.
このような場合、QTextDecoderオブジェクトを使用してQTextDecoderを符号化し、次のようにして復号プロセス全体を完了する.
QTextCodec *codec = QTextCodec::codecForName("Shift-JIS");
QTextDecoder *decoder = codec->makeDecoder();
QString string;
while (new_data_available()) {
QByteArray chunk = get_new_data();
string += decoder->toUnicode(chunk);
}
The QTextDecoderオブジェクトは、ブロックとブロックとの間の状態を保存するので、複数バイトの文字が複数ブロックに分割するも正常に動作する.
独自のエンコーディングクラスを作成
QTextCodecサブクラスを作成することで、Qtに新しい文字符号化サポートを追加することができる.
The pure virtual functions describe the encoder to the system and the coder is used as required in the different text file formats supported by QTextStream, and under X11, for the locale-specific character input and output.
Qtに新しいコードサポートを追加するには、QTextCodecサブクラスを作成し、次の表の関数を実現する必要がある.
Function
Description
name()
正式コードの名前を返します.IANA character-sets encoding fileに符号化する場合、the nameは符号化の優先MIME nameとなる.
aliases()
エンコードの別名を返します.QTextCodecは、デフォルトのインプリメンテーションが空のリストを返すことを提供する.例えば、「ISO-8859-1」has「latin 1」、「CP 819」、「IBM 819」、and「iso-ir-100」as aliases.
mibEnum()
IANA character-sets encoding fileに符号化すると、MIB列挙タイプが戻る.
convertToUnicode()
8ビット文字列をUnicodeに変換する.
convertFromUnicode()
Unicodeを8ビット文字列に変換する.
コードのためにプラグインを作成するのが便利であることがわかります.詳細は、How to Create Qt Pluginsを参照してください.
See also QTextStream, QTextDecoder, QTextEncoder, and Codecs Example.
Member Type Documentation
enum QTextCodec::ConversionFlagflags QTextCodec::ConversionFlags
Constant
Value
Description
QTextCodec::DefaultConversion
0
No flag is set.
QTextCodec::ConvertInvalidToNull
0x80000000
このフラグが設定と、無効な入力ごとにnull文字出力に変換されます.
QTextCodec::IgnoreHeader
0x1
すべてのUnicodeバイトシーケンスを無視します.
The ConversionFlags type is a typedef for QFlags
Member Function Documentation
QTextCodec::QTextCodec () [protected]
QTextCodecを構築する、最も高い優先度を与える.QTextCodecはスタック上に構築すべきである(i.e.newキーワードを用いる).Qtは所有権を取得し、アプリケーションの終了時に削除する.
Warning:この関数は再ロードできません.
QTextCodec::~QTextCodec () [virtual protected]
分析QTextCodec.codecsを自分で削除すべきではないことに注意してください.作成するとQtが責任を負います.
Warning:この関数は再ロードできません.
QList<QByteArray> QTextCodec::aliases () const [virtual]
サブクラスは別名シーケンスを返します
エンコード標準エイリアスはIANA character-sets encoding fileを表示することができる.
QList<QByteArray> QTextCodec::availableCodecs () [static]
使用可能なすべての符号化を返し、QTextCodec::codecForName()を呼び出して、QTextCodecのnameをnameで取得する.
符号化に別名がある場合、立標には多くの記載の同じ符号化が含まれる.
See also availableMibs(), name(), and aliases().
QList<int> QTextCodec::availableMibs () [static]
利用可能な符号化の多くについてMIBsリストを返す.Call QTextCodec::codecForMib() to obtain the QTextCodec for the MIB.
See also availableCodecs() and mibEnum().
一部のQt 4を翻訳した.5の参考マニュアル、詳しい住所:http://l.99081.com/jieen/Qt451/index.html
最初は、ゆっくり!堅持する