Python中的編碼

文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡書

Python處理字符串,寫文件時會碰到許多的編碼問題,特別是涉及到中文的時候,非常煩人,但又不得不學。下面主要記錄工作過程中碰到的Python編碼問題。

1. 字符串編碼

Python的字符串類型為str,可以通過type函數查看返回的類型。Python中字符串默認的編碼方式需要通過sys.getfilesystemencoding()查看,通常是utf-8。u'中文'構造出來的是unicode類型,不是str類型。

# 查看字符串編碼方式
>>> import sys
>>> print sys.getfilesystemencoding()
utf-8

>>> s1 = '中國'
>>> s2 = u'中國'
>>> type(s1)
<type 'str'>
>>> type(s2)
<type 'unicode'>

str類型和unicode類型分別有decodeencode函數。str.decode用來將str轉為unicode,unicode.encode用來將unicdoe轉為str。用法如下:

# decode
>>> s1.decode('utf8')
u'\u4e2d\u56fd'
>>> type(s1.decode('utf8'))
<type 'unicode'>

# encode
>>> s2.encode('utf8')
'\xe4\xb8\xad\xe5\x9b\xbd'
>>> type(s2.encode('utf8'))
<type 'str'>

2. 代碼文件編碼

py文件默認的編碼是ASCII編碼,中文顯示時會進行ASCII編碼到系統默認編碼的轉換,在運行Python文件時經常會報錯。因此需要設置py文件的編碼為utf-8。設置方式如下:

# _*_ coding: utf-8 _*_
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容