QTextCodec Classリファレンスマニュアル



ホームページ・すべてのネーミングスペース・すべてのクラス・主要なクラス・グループのクラス・モジュール・関数
漢化人員及びログ

QTextCodec Classリファレンスマニュアル[QtCore module]


QTextCodecクラスは文字符号化変換を提供する.More...
 #include <QTextCodec>

Note:このようなすべての関数は、setCodecForTr()、setCodecForCStrings()、QTextCodec()、および~QTextCodec()を除くリロード可能である.
  • List of all members, including inherited members
  • Qt 3 support members

  • Public Types

  • class ConverterState
  • enum ConversionFlag { DefaultConversion, ConvertInvalidToNull, IgnoreHeader }
  • flags ConversionFlags

  • Public Functions

  • virtual QList aliases () const
  • bool canEncode ( QChar ch ) const
  • bool canEncode ( const QString & s ) const
  • QByteArray fromUnicode ( const QString & str ) const
  • QByteArray fromUnicode ( const QChar * input, int number, ConverterState * state = 0 ) const
  • QTextDecoder * makeDecoder () const
  • QTextEncoder * makeEncoder () const
  • virtual int mibEnum () const = 0
  • virtual QByteArray name () const = 0
  • QString toUnicode ( const QByteArray & a ) const
  • QString toUnicode ( const char * input, int size, ConverterState * state = 0 ) const
  • QString toUnicode ( const char * chars ) const

  • Static Public Members

  • QList availableCodecs ()
  • QList availableMibs ()
  • QTextCodec * codecForCStrings ()
  • QTextCodec * codecForHtml ( const QByteArray & ba, QTextCodec * defaultCodec )
  • QTextCodec * codecForHtml ( const QByteArray & ba )
  • QTextCodec * codecForLocale ()
  • QTextCodec * codecForMib ( int mib )
  • QTextCodec * codecForName ( const QByteArray & name )
  • QTextCodec * codecForName ( const char * name )
  • QTextCodec * codecForTr ()
  • void setCodecForCStrings ( QTextCodec * codec )
  • void setCodecForLocale ( QTextCodec * c )
  • void setCodecForTr ( QTextCodec * c )

  • Protected Functions

  • QTextCodec ()
  • virtual ~QTextCodec ()
  • virtual QByteArray convertFromUnicode ( const QChar * input, int number, ConverterState * state ) const = 0
  • virtual QString convertToUnicode ( const char * chars, int len, ConverterState * state ) const = 0

  • 詳細な説明


    QTextCodecクラスは文字間の符号化変換を提供する.
    QtはUnicodeで記憶する、文字列を操作する.多くの場合、符号化を知らないでデータを処理することを望むかもしれません.例えば、Japanese文書の多くはShift-JIS or ISO 2022-JPで記憶するが、RussianユーザはKOI 8-R or Windows-1211を常用する.
    Qtは、非UnicodeフォーマットのUnicodeへの変換を支援するQTextCodecクラスを提供する.独自のコードクラスを作成することもできます
    サポートされているコードは次のとおりです.
  • Apple Roman
  • Big5
  • Big5-HKSCS
  • CP949
  • EUC-JP
  • EUC-KR
  • GB18030-0
  • IBM 850
  • IBM 866
  • IBM 874
  • ISO 2022-JP
  • ISO 8859-1 to 10
  • ISO 8859-13 to 16
  • Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml
  • JIS X 0201
  • JIS X 0208
  • KOI8-R
  • KOI8-U
  • MuleLao-1
  • ROMAN8
  • Shift-JIS
  • TIS-620
  • TSCII
  • UTF-8
  • UTF-16
  • UTF-16BE
  • UTF-16LE
  • UTF-32
  • UTF-32BE
  • UTF-32LE
  • Windows-1250 to 1258
  • WINSAMI2

  • 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. It stores an OR combination of ConversionFlag values.

    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


    最初は、ゆっくり!堅持する