1.檔案編碼
py檔案預設是ascii編碼,是不支援中文的,即使注釋是中文也不行,為了解決這個問題,就需要把檔案編碼型別改為utf-8的型別。
可在檔案開頭加上如下**:
# -*- coding:utf-8 -*-
2.字串編碼
字串在python內部的表示是unicode編碼。
因此,在做編碼轉換時,通常需要將unicode作為中間編碼。
先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。
decode是字串具有的方法,將字串轉換成unicode格式,引數為源字串的編碼格式。
encode也是字串具有的方法,將字串轉換成引數指定的編碼格式。
#字串編碼為unicode編碼
s = u'中文'
#字串編碼與**本身編碼一致,如果檔案編碼為utf-8則該字串編碼為utf-8,如果檔案編碼為gb2312則字串編碼為gb2312。
s = '中文'
3.系統編碼
通常python預設的系統編碼是ascii,可通過sys.getdefaultencoding()檢視。
當進行解碼時,如果沒有指名編碼格式,那麼就會按照sys.getdefaultencoding()或得的編碼格式進行解碼。
系統會先將字串從sys.getdefaultencoding()解碼成unicode,然後再編碼成utf-8。
s.encode('utf-8')
解決方案:
1》解碼時指名編碼格式
s = '中文'
s.decode('gbk').encode('utf-8')
2》更改defaultencoding為檔案的編碼方式
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
#python2.5初始化後會刪除sys.setdefaultencoding這個方法,因此需要重新載入。
reload(sys)
sys.setdefaultencoding('utf-8')
s.encode('utf-8')
Python 檔案編碼問題解決
最近使用python操作檔案,經常遇到編碼錯誤的問題,例如 unicodedecodeerror utf 8 codec can t decode byte 0xbe in position 350 in encoding utf 8 雖然這種類似的方法也能解決。但是這種方法只能靠運氣去碰,如果剛好...
mysql編碼問題解決
首先需要在建立表的時候,將編碼規定。具體如下 create databasetest character set utf8 collate utf8 general ci engine innodb default charset utf8 補救措施 1.檢視預設編碼集 show variables...
LoadRunner 使用中常見問題解決方案
loadrunner使用過程中經常會遇到許多問題,如果不是正版又會有很多限制,將自己遇到的問題進行整理 1 當loadrunner中提示在某引數化名稱中找不到資料 一般情況下,是因為修改了引數化名稱,但是loadrunner中仍然存在原引數的資料檔案,此時,關閉loadrunner,將原引數的資料檔...