<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # QTextCodec Class Reference ## [[QtCore](index.htm) module] 該持QTextCodec類提供文本編碼之間的轉換。[More...](#details) ### Types * `enum ConversionFlag { DefaultConversion, ConvertInvalidToNull, IgnoreHeader }` * `class **[ConversionFlags](index.htm)**` * `class **[ConverterState](index.htm)**` ### Methods * `__init__ (self)` * `list-of-QByteArray aliases (self)` * `bool canEncode (self, QString)` * `QString convertToUnicode (self, str?in, ConverterState?state)` * `QByteArray fromUnicode (self, QString?uc)` * `QTextDecoder makeDecoder (self)` * `QTextDecoder makeDecoder (self, ConversionFlags?flags)` * `QTextEncoder makeEncoder (self)` * `QTextEncoder makeEncoder (self, ConversionFlags?flags)` * `int mibEnum (self)` * `QByteArray name (self)` * `QString toUnicode (self, QByteArray)` * `QString toUnicode (self, str?chars)` * `QString toUnicode (self, str?in, ConverterState?state?=?None)` ### Static Methods * `list-of-QByteArray availableCodecs ()` * `list-of-int availableMibs ()` * `QTextCodec codecForCStrings ()` * `QTextCodec codecForHtml (QByteArray?ba)` * `QTextCodec codecForHtml (QByteArray?ba, QTextCodec?defaultCodec)` * `QTextCodec codecForLocale ()` * `QTextCodec codecForMib (int?mib)` * `QTextCodec codecForName (QByteArray?name)` * `QTextCodec codecForName (str?name)` * `QTextCodec codecForTr ()` * `QTextCodec codecForUtfText (QByteArray?ba)` * `QTextCodec codecForUtfText (QByteArray?ba, QTextCodec?defaultCodec)` * `setCodecForCStrings (QTextCodec?c)` * `setCodecForLocale (QTextCodec?c)` * `setCodecForTr (QTextCodec?c)` * * * ## Detailed Description 該持QTextCodec類提供文本編碼之間的轉換。 Qt使用Unicode來存儲,繪制和操作字符串。在許多情況下,您可能希望處理使用不同的編碼數據。例如,大多數日本人的文件仍然存儲在按住Shift JIS或ISO 2022-JP ,而俄羅斯用戶往往有他們的KOI8-R或Windows - 1251文檔。 Qt提供了一系列QTextCodec來控制班,以幫助將非Unicode格式與Unicode的。您也可以創建自己的編解碼器類。 支持的編碼有: * Apple Roman * [Big5](index.htm) * [Big5-HKSCS](index.htm) * CP949 * [EUC-JP](index.htm) * [EUC-KR](index.htm) * [GB18030-0](index.htm) * IBM 850 * IBM 866 * IBM 874 * [ISO 2022-JP](index.htm) * 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](index.htm) * TIS-620 * [TSCII](index.htm) * UTF-8 * UTF-16 * UTF-16BE * UTF-16LE * UTF-32 * UTF-32BE * UTF-32LE * Windows-1250 to 1258 * WINSAMI2 QTextCodecs可以用如下的一些本地編碼的字符串轉換為Unicode 。假設你有一些字符串編碼在俄羅斯KOI8-R編碼,并希望將其轉換為Unicode 。最簡單的方法來做到這一點是這樣的: ``` [QByteArray](qbytearray.html) encodedString = "..."; QTextCodec *codec = QTextCodec.codecForName("KOI8-R"); [QString](qstring.html) string = codec->toUnicode(encodedString); ``` 在此之后,`string`保存文本轉換為Unicode 。從Unicode轉換一個字符串到本地編碼是一樣簡單: ``` [QString](qstring.html) string = "..."; QTextCodec *codec = QTextCodec.codecForName("KOI8-R"); [QByteArray](qbytearray.html) encodedString = codec->fromUnicode(string); ``` 要讀取或寫入的文件在各種編碼,使用[QTextStream](qtextstream.html)其[setCodec()](qtextstream.html#setCodec)功能。請參閱[Codecs](index.htm)例如對于QTextCodec來控制的應用程序文件I / O。 嘗試將數據通過網絡接收它時,在轉換塊,例如,當一些必須小心。在這種情況下,它可能是一個多字節字符將被分割在兩個塊。在最好的,這可能導致一個字符的損失和在最壞的情況導致整個轉換失敗。 在這些情況下使用的方法是創建一個[QTextDecoder](qtextdecoder.html)對象為編解碼器和使用該[QTextDecoder](qtextdecoder.html)整個解碼過程,如下所示: ``` QTextCodec *codec = QTextCodec.codecForName("Shift-JIS"); [QTextDecoder](qtextdecoder.html) *decoder = codec->makeDecoder(); [QString](qstring.html) string; while (new_data_available()) { [QByteArray](qbytearray.html) chunk = get_new_data(); string += decoder->toUnicode(chunk); } delete decoder; ``` 該[QTextDecoder](qtextdecoder.html)對象維護塊之間的狀態,因此可以正常工作,即使多字節字符分割塊之間。 ### Creating Your Own Codec Class 支持新的文本編碼可以通過創建子類QTextCodec來控制被加入到Qt的。 該純虛函數描述編碼器系統和編碼器被用作需要在所支持的不同的文本文件格式[QTextStream](qtextstream.html)和X11下,為區域設置特定的字符輸入和輸出。 要添加另一個編碼支持Qt的,請QTextCodec來控制的一個子類,并實現下表中列出的功能。 | Function | Description | | --- | --- | | [name](qtextcodec.html#name)() | Returns the official name for the encoding. If the encoding is listed in the [IANA character-sets encoding file](http://www.iana.org/assignments/character-sets), the name should be the preferred MIME name for the encoding. | | [aliases](qtextcodec.html#aliases)() | Returns a list of alternative names for the encoding. QTextCodec provides a default implementation that returns an empty list. For example, "ISO-8859-1" has "latin1", "CP819", "IBM819", and "iso-ir-100" as aliases. | | [mibEnum](qtextcodec.html#mibEnum)() | Return the MIB enum for the encoding if it is listed in the [IANA character-sets encoding file](http://www.iana.org/assignments/character-sets). | | [convertToUnicode](qtextcodec.html#convertToUnicode)() | Converts an 8-bit character string to Unicode. | | [convertFromUnicode](qtextcodec.html#convertFromUnicode)() | Converts a Unicode string to an 8-bit character string. | 您可能會發現它更方便,讓您的編解碼器類可以作為一個插件,見[How to Create Qt Plugins](index.htm)了解詳情。 * * * ## Type Documentation ``` QTextCodec.ConversionFlag ``` | Constant | Value | Description | | --- | --- | --- | | `QTextCodec.DefaultConversion` | `0` | 無標志被設置。 | | `QTextCodec.ConvertInvalidToNull` | `0x80000000` | 如果設置了這個標志,每個無效輸入字符輸出為一個空字符。 | | `QTextCodec.IgnoreHeader` | `0x1` | 忽略任何Unicode字節順序標記,并且不產生任何。 | 該ConversionFlags類型是一個typedef為[QFlags](index.htm)\u003cConversionFlag\u003e 。它存儲ConversionFlag值的或組合。 * * * ## Method Documentation ``` QTextCodec.__init__ (self) ``` 構造一個[QTextCodec](qtextcodec.html),并給它最高的優先級。該[QTextCodec](qtextcodec.html)應始終在堆(即構造`new`) 。 Qt可以擁有和應用程序終止時將其刪除。 ``` list-of-QByteArray QTextCodec.aliases (self) ``` 子類可以返回一個數字的別名有問題的編解碼器。 標準別名編解碼器可以在被發現[IANA character-sets encoding file](http://www.iana.org/assignments/character-sets)。 ``` list-of-QByteArray QTextCodec.availableCodecs () ``` 返回所有可用的編解碼器的列表,按名稱。通話[QTextCodec.codecForName](qtextcodec.html#codecForName)( ),得到[QTextCodec](qtextcodec.html)為名稱。 該列表可以包含相同的編解碼器的許多提到,如果編解碼器具有別名。 **See also** [availableMibs](qtextcodec.html#availableMibs)( )[name](qtextcodec.html#name)()和[aliases](qtextcodec.html#aliases)( ) 。 ``` list-of-int QTextCodec.availableMibs () ``` 返回的MIB可用于所有硬件編解碼器的列表。通話[QTextCodec.codecForMib](qtextcodec.html#codecForMib)( ),得到[QTextCodec](qtextcodec.html)對MIB 。 **See also** [availableCodecs](qtextcodec.html#availableCodecs)()和[mibEnum](qtextcodec.html#mibEnum)( ) 。 ``` bool QTextCodec.canEncode (self, QString) ``` 返回True如果Unicode字符_ch_可以使用此編解碼器完全編碼,否則返回False 。 ``` QTextCodec QTextCodec.codecForCStrings () ``` [](qtextcodec.html) [返回所使用的編解碼器](qtextcodec.html)[QString](qstring.html)轉換為和從`const char *`和QByteArrays 。如果這個函數返回0 (默認值) ,[QString](qstring.html)假定的Latin-1 。 **See also** [setCodecForCStrings](qtextcodec.html#setCodecForCStrings)( ) 。 ``` QTextCodec QTextCodec.codecForHtml (QByteArray?ba) ``` [](qtextcodec.html) [嘗試檢測的HTML給定的字節數組中所提供的代碼片段的編碼,_ba_通過檢查BOM(字節順序標記)和內容類型的元頭,并返回一個](qtextcodec.html)[QTextCodec](qtextcodec.html)例如,它能夠將HTML轉換為Unicode解碼。如果該編解碼器不能從所提供的內容檢測_defaultCodec_返回。 此功能被引入Qt的4.4 。 **See also** [codecForUtfText](qtextcodec.html#codecForUtfText)( ) 。 ``` QTextCodec QTextCodec.codecForHtml (QByteArray?ba, QTextCodec?defaultCodec) ``` [ 這是一個重載函數。 ](qtextcodec.html) [嘗試檢測的HTML給定的字節數組中所提供的代碼片段的編碼,_ba_通過檢查BOM(字節順序標記)和內容類型的元頭,并返回一個](qtextcodec.html)[QTextCodec](qtextcodec.html)例如,它能夠將HTML轉換為Unicode解碼。如果編解碼器不能被檢測到,此重載返回的Latin-1[QTextCodec](qtextcodec.html)。 ``` QTextCodec QTextCodec.codecForLocale () ``` [ 返回一個指向該編解碼器為這個區域設置最合適。 在Windows上,編解碼器將根據系統區域設置。在Unix系統中,開始用Qt 4.2 ,編解碼器將使用_iconv_庫。請注意,在兩種情況下,編解碼器的名稱將是“系統” 。 ](qtextcodec.html) [**See also**](qtextcodec.html) [setCodecForLocale](qtextcodec.html#setCodecForLocale)( ) 。 ``` QTextCodec QTextCodec.codecForMib (int?mib) ``` [](qtextcodec.html) [返回](qtextcodec.html)[QTextCodec](qtextcodec.html)相匹配的[MIBenum](qtextcodec.html#mibEnum) _mib_。 ``` QTextCodec QTextCodec.codecForName (QByteArray?name) ``` [](qtextcodec.html) [搜索所有已安裝](qtextcodec.html)[QTextCodec](qtextcodec.html)對象并返回一個最匹配_name_,與之匹配的是不區分大小寫的。返回0 ,如果沒有匹配的編解碼器的名稱_name_可以找到。 ``` QTextCodec QTextCodec.codecForName (str?name) ``` [](qtextcodec.html) [搜索所有已安裝](qtextcodec.html)[QTextCodec](qtextcodec.html)對象并返回一個最匹配_name_,與之匹配的是不區分大小寫的。返回0 ,如果沒有匹配的編解碼器的名稱_name_可以找到。 ``` QTextCodec QTextCodec.codecForTr () ``` [](qtextcodec.html) [返回所使用的編解碼器](qtextcodec.html)[QObject.tr](qobject.html#tr)( )在其參數。如果這個函數返回0 (默認值) , TR ()假定的Latin-1 。 **See also** [setCodecForTr](qtextcodec.html#setCodecForTr)( ) 。 ``` QTextCodec QTextCodec.codecForUtfText (QByteArray?ba) ``` [](qtextcodec.html) [嘗試檢測所提供的代碼片段的編碼_ba_通過使用BOM(字節順序標記) ,并返回一個](qtextcodec.html)[QTextCodec](qtextcodec.html)例如,能夠將文本轉換為Unicode解碼。如果該編解碼器不能從所提供的內容檢測_defaultCodec_返回。 此功能被引入Qt的4.6 。 **See also** [codecForHtml](qtextcodec.html#codecForHtml)( ) 。 ``` QTextCodec QTextCodec.codecForUtfText (QByteArray?ba, QTextCodec?defaultCodec) ``` [ 這是一個重載函數。 ](qtextcodec.html) [嘗試檢測所提供的代碼片段的編碼_ba_通過使用BOM(字節順序標記) ,并返回一個](qtextcodec.html)[QTextCodec](qtextcodec.html)例如,能夠將文本轉換為Unicode解碼。如果編解碼器不能被檢測到,此重載返回的Latin-1[QTextCodec](qtextcodec.html)。 **See also** [codecForHtml](qtextcodec.html#codecForHtml)( ) 。 ``` QString QTextCodec.convertToUnicode (self, str?in, ConverterState?state) ``` 這種方法是抽象的,應在任何子類中重新實現。 [QTextCodec](qtextcodec.html)子類必須重新實現此功能。 將第一_len_字符_chars_從子類到Unicode的編碼,并返回結果的[QString](qstring.html)。 _state_可以是0,在這種情況下的轉換是無狀態的,因此應該使用默認的轉換規則。如果狀態不為0 ,編解碼器應在轉換后保存的狀態_state_,并調整remainingChars和結構的invalidChars成員。 ``` QByteArray QTextCodec.fromUnicode (self, QString?uc) ``` [](qbytearray.html) [皈依_str_從Unicode到該編解碼器的編碼,并返回結果的](qbytearray.html)[QByteArray](qbytearray.html)。 ``` QTextDecoder QTextCodec.makeDecoder (self) ``` [](qtextdecoder.html) [創建](qtextdecoder.html)[QTextDecoder](qtextdecoder.html)存儲足夠的狀態來解碼的塊`char *`數據來創建Unicode數據塊。 來電者是負責刪除返回的對象。 ``` QTextDecoder QTextCodec.makeDecoder (self, ConversionFlags?flags) ``` [](qtextdecoder.html) [創建](qtextdecoder.html)[QTextDecoder](qtextdecoder.html)用指定的_flags_要解碼的塊`char *`數據來創建Unicode數據塊。 來電者是負責刪除返回的對象。 此功能被引入Qt的4.7 。 ``` QTextEncoder QTextCodec.makeEncoder (self) ``` [](qtextencoder.html) [創建](qtextencoder.html)[QTextEncoder](qtextencoder.html)存儲足夠的狀態以Unicode數據塊編碼為`char *`數據。 來電者是負責刪除返回的對象。 ``` QTextEncoder QTextCodec.makeEncoder (self, ConversionFlags?flags) ``` [](qtextencoder.html) [創建](qtextencoder.html)[QTextEncoder](qtextencoder.html)用指定的_flags_以Unicode數據塊編碼為`char *`數據。 來電者是負責刪除返回的對象。 此功能被引入Qt的4.7 。 ``` int QTextCodec.mibEnum (self) ``` 這種方法是抽象的,應在任何子類中重新實現。 的子類[QTextCodec](qtextcodec.html)必須重新實現此功能。它返回MIBenum (見[IANA character-sets encoding file](http://www.iana.org/assignments/character-sets)獲取更多信息) 。重要的是,每[QTextCodec](qtextcodec.html)子類將返回此函數的正確獨特的價值。 ``` QByteArray QTextCodec.name (self) ``` [ 這種方法是抽象的,應在任何子類中重新實現。 ](qbytearray.html) [](qbytearray.html)[QTextCodec](qtextcodec.html)子類必須重新實現此功能。它返回由子類支持的編碼的名稱。 如果該編解碼器被注冊為一個字在設置[IANA character-sets encoding file](http://www.iana.org/assignments/character-sets)此方法應為如果定義編解碼器返回的首選MIME名稱,否則其名稱。 ``` QTextCodec.setCodecForCStrings (QTextCodec?c) ``` 設置使用的編解碼器[QString](qstring.html)轉換為和從`const char *`和QByteArrays 。如果_codec_為0 (默認值) ,[QString](qstring.html)假定的Latin-1 。 **Warning:**一些編解碼器不保留在ASCII范圍的字符( 0x00到0x7F ) 。例如,日文Shift- JIS編碼的反斜杠字符(為0x5A )映射到日元的性格。為了避免不良的副作用,我們建議避免這種編解碼器與setCodecsForCString ( ) 。 **Warning:**此功能不[reentrant](index.htm#reentrant)。 **See also** [codecForCStrings](qtextcodec.html#codecForCStrings)()和[setCodecForTr](qtextcodec.html#setCodecForTr)( ) 。 ``` QTextCodec.setCodecForLocale (QTextCodec?c) ``` 編解碼器設置為_c_;這將被返回[codecForLocale](qtextcodec.html#codecForLocale)( ) 。如果_c_是一個空指針,編解碼器被重置為默認值。 這可能需要為那些希望使用自己的機制設置的區域設置一些應用程序。 **See also** [codecForLocale](qtextcodec.html#codecForLocale)( ) 。 ``` QTextCodec.setCodecForTr (QTextCodec?c) ``` 設置使用的編解碼器[QObject.tr](qobject.html#tr)( )在它的參數_c_。如果_c_為0 (默認值) , TR ()假定的Latin-1 。 如果在程序中的文字引用的文字是不是在Latin-1編碼,此功能可用于設置相應的編碼。例如,韓國程序員開發的軟件可以使用eucKR程序中的所有文本,在這種情況下, main()函數可能看起來像這樣: ``` int main(int argc, char *argv[]) { [QApplication](qapplication.html) app(argc, argv); [QTextCodec](qtextcodec.html).setCodecForTr([QTextCodec](qtextcodec.html).codecForName("eucKR")); ... } ``` 請注意,這不是個好辦法選擇的編碼,該_user_已選擇。例如,要轉換包含英語字符串韓國的應用程序,所有需要的是英文字符串,通過TR ( )和要加載翻譯文件傳遞。對于國際化的詳細信息,請參閱[Internationalization with Qt](index.htm)。 **Warning:**此功能不[reentrant](index.htm#reentrant)。 **See also** [codecForTr](qtextcodec.html#codecForTr)()和[setCodecForCStrings](qtextcodec.html#setCodecForCStrings)( ) 。 ``` QString QTextCodec.toUnicode (self, QByteArray) ``` 皈依_a_從這個編解碼為Unicode的編碼,并返回結果的[QString](qstring.html)。 ``` QString QTextCodec.toUnicode (self, str?chars) ``` 將第一_size_從人物_input_從這個編解碼為Unicode的編碼,并返回結果的[QString](qstring.html)。 該_state_所使用的轉換器被更新。 ``` QString QTextCodec.toUnicode (self, str?in, ConverterState?state?=?None) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看