python3中encode utf 16 出現亂碼?

時間 2021-06-02 22:26:52

1樓:

在python3中,output首先使用utf-8輸出

上例中:'a你好'.encode('utf-16') =b'\xff\xfea\x00`O}Y',\x標示16進製制

ff fe 表示 utf16(Little Endian)

a在utf16的儲存為'\x61\x00',但在輸出為utf8字串時,'\x61'被解析為'a'。

同理,ord( '`')=96(\x60),ord('O')=79(\x4f),ord('你')=20320(\x4f60),

那麼79*256+96=20320,(\x4f*\x100+\x60=\x4f60)

這樣b'`O'.encode('utf16')='你',b'}Y'.encode('utf16')='好'。

參考:UNICODE編碼UTF-16 中的Endian(FE FF) 和 Little Endian(FF FE)

Unicode(UTF-8, UTF-16)令人混淆的概念

2樓:黃哥

你的問題中沒有亂嗎之說

請好好看看編碼的文章吧

每乙個軟體開發者必須知道的 Unicode 和字符集The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

和Unicode HOWTO - Python 3.6.5rc1 documentation

python3中賦值問題?

依雲 因為乙個被賦值的物件是名字,另乙個是物件的資料。名字變更不影響物件本身 只影響你引用它的方法 而物件的資料變更當然會影響到那個物件,而不管那個物件有幾個名字,你又是通過哪個名字找到它的。再說一遍,這個和物件可變不可變沒任何關係。你嘗試修改可變物件的資料,結果會是成功的。如果你把 dict 換成...

Python3中,eval input 和float input 有什麼區別?

這個問題首先弄清楚eval.eval 是 Built in Function.在 2.Built in Functions 可找到關於eval的用法 動態執行語句 eval expression globals locals 同時也支援以檔案的形式執行 execfile 函式 eval常用於 lis...

python3中的urlopen對於中文url是如何處理的?

千面君 說說http協議中的編碼和解碼 wangfengpaopao 部落格園 HTTP協議中的編碼和解碼URL的編碼和解碼 JinxKc python3中除了 urllib.parse.quote 你還要fromurllibimportparse 要不parse會爆AttributeError m...