python常見編碼問題解決方法

2021-06-05 02:55:00 字數 1141 閱讀 9140

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,將原引數的資料檔...