2011-09-15 9 views

回答

3

基於在src/corelibs/codecs/的源代碼,它似乎Qt使用的主機,UTF-16和UTF-32的字節順序。

如果您使用QTextCodec來讀取具有BOM的現有Unicode字符串,並且您沒有明確要求忽略頭,則會使用字符串中檢測到的字節順序。

  • 在* qutfcodec_p.h *兩者QUtf16Codec::eQUtf32Codec::e被初始化爲值DetectEndianness(枚舉)。

  • qutfcodec.cpp,附近的職能從QUtf16QUtf32(使用QUtf16CodecQUtf32Codec)類convertFromUnicodeconvertToUnicode開始的時候,你可以找到行:

    endian = (QSysInfo::ByteOrder == QSysInfo::BigEndian) 
        ? BigEndianness : LittleEndianness;