「ok1、ok2、ok3」という名前のgeditを使用して、同じコンテンツ「你」(you
英語)を含む3つのファイルを3つの異なる形式(gbk\utf-8\ucs-2)で編集します。
>>> f1 = open('ok1', 'rb').read()
>>> f2 = open('ok2', 'rb').read()
>>> f3 = open('ok3', 'rb').read()
>>> f1
'\xc4\xe3\n'
>>> f2
'\xe4\xbd\xa0\n'
>>> f3
'`O\n\x00'
>>> hex(ord("`"))
'0x60'
>>> hex(ord("O"))
'0x4f'
実際、f3 は '\x60\x4f' ですが、次の出力で混乱しました
>>> '\xe4\xbd\xa0'.decode("utf-8")
u'\u4f60'
>>> '\xc4\xe3'.decode("gbk")
u'\u4f60'
>>>
gbk ではなく、utf-8 ではなく、ucs-2 (またはユニコードと言う) にのみエンディアンの問題があるのはなぜですか?