編碼 python筆記

2021-08-28 04:39:53 字數 1211 閱讀 2157

為了避免亂碼問題,應當始終堅持使用

utf-8

編碼對strbytes進行轉換。

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

第一行注釋是為了告訴

linux/os x

系統,這是乙個

python

可執行程式,

windows

系統會忽略這個注釋;

第二行注釋是為了告訴

python

直譯器,按照

utf-8

編碼讀取源**,否則,你在源**中寫的中文輸出可能會有亂碼。

python

的字串型別是str,在記憶體中以

unicode

表示,乙個字元對應若干個位元組。如果要在網路上傳輸,或者儲存到磁碟上,就需要把str變為以位元組為單位的bytes

python

bytes型別的資料用帶b字首的單引號或雙引號表示.

bytes的每個字元都只占用乙個位元組

>>> 'abc'.encode('ascii')

b'abc'

>>> '中文'.encode('utf-8')

b'\xe4\xb8\xad\xe6\x96\x87'

反過來,如果我們從網路或磁碟上讀取了位元組流,那麼讀到的資料就是

bytes

。要把bytes

變為str

,就需要用

decode()

方法:

>>> b'abc'.decode('ascii')

'abc'

>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')

'中文'

如果

bytes

中只有一小部分無效的位元組,可以傳入

errors='ignore'

忽略錯誤的位元組:

>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')

'中'

python編碼筆記

一段程式讀入了utf 8檔案,再print出來,在pycharm中可以正常執行,在cmd中報 gbk codec can t encode錯誤,是因為cmd預設使用gbk輸出,如果在程式中print了一段utf 8字元則會報此錯誤,解決方法是 file open filepath,encoding ...

Python學習筆記 編碼問題

想要徹底搞清楚編碼問題,我們必須要先搞清楚計算機是怎麼儲存資料的,這就涉及到了計算機基礎的幾個概念了,開篇我們就先來捋捋這幾個容易混淆的概念。bit二進位制位,是計算機內部資料儲存的最小單位,11010100是乙個8位二進位制數。乙個 二進位制位只可以表示0和1兩種狀態 2 1 兩個二進位制位可以表...

python爬蟲筆記 編碼問題

importurllib2 importurllib importrequests frombs4 importbeautifulsoup url respones requests.get url text soup beautifulsoup respones,html.parser info ...