小結一下我困惑Python字元編碼

2021-06-18 21:27:01 字數 820 閱讀 5614

一下結論不是一定準確,是我自己通過實驗理解的結果。如有錯誤歡迎指正。

# coding:utf8

這種寫法是針對原始檔中的非ascii字元的編碼方式

例如:寫s = u"中文",會以utf8將原始檔中的字串解碼成unicode。相當於s = f.read(); s = s.decode('utf8')

若**中寫 s = "中文",不會對字串進行編碼,相當於s = f.read()

sys.setdefaultencoding()

這個配置是用於在 s.encode() s.decode() 不帶引數時的預設引數。

例如:print u 會事先將unicode字串轉換為str,再輸出到控制台。 會呼叫預設引數的u.encode() 。 

如果預設sys.getdefaultencoding()是ascii,而u當中又含有非ascii字元,則會丟擲異常。unicodeencodeerror: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

print 輸出

python的print語句會將字串轉換為str進行輸出,

也就是說 print s 這個語句,如果s本身就是str型別,則直接輸出,若s是unicode型別,則會以預設編碼呼叫s.encode() 然後進行輸出。

對於windows來說,控制台中顯示中文是以gbk編碼的,也就是說print乙個utf8編碼的str會看到一串亂碼。

秀一下我的魔方

這個是最普通的最常見的三階魔方。我手不夠快,平均也就40秒,最快才30秒。差的太遠。現在也好久不玩了,估計完成六面得一分鐘了。二階魔方,你覺得一定很簡單吧,其實挺難的,如果你不會三階魔方六面還原的話,基本上這個二階的也夠嗆。四階魔方,在正常的魔方中,四階魔方應該是最難的,比5階的要難。五階魔方,玩起...

介紹一下我的職業

在文章中提到我是自由職業者,這幾天很多朋友給提供了軟體外包的專案,在這裡我首先表示感謝,但要說聲抱歉了,我不接軟體外包專案 下面給對我好奇的朋友簡單介紹乙個我自己,我大學時的專業是經濟法,程式設計是我從小就喜歡的,1989年,上五年級時,我就開始用basic寫程式玩 那是乙個很多人還無法區分計算機與...

推廣一下我的專案

之前因為腦洞大寫了一些 比如 二進位制轉換 最小公倍數計算 想整合一下,修改的 然後現在發布 有兩個 乙個是平時腦洞大隨手寫的 乙個是正式的小工具合集 這個專案是小工具目前包含了最小公倍數計算 多進製轉換 質數合數檢測和乙個小遊戲 但是現在還只有命令列,而且如果輸入了超出lnt值或者long值會直接...