python編碼方式

2021-06-20 11:16:30 字數 1959 閱讀 7225

檢視編碼方式:

import chardet

print chardet.detect(str) #str為string[位元組序]

若寫入時以mode='a',encoding='utf-16'方式執行,則會在內容寫入前新增標誌:『xff/xfe』

若以(mode='wb',encoding='utf-16')方式執行,則不會新增:『xff/xfe』

若以(mode='a',encoding='utf-16-le')方式執行,則不會新增標誌

讀出時該部分被解碼為'ufeff'

update_txt_encoding = #write encoding:utf-16

update_write_encoding_le = #write encoding:utf-16-le

print "utf-16"+"*"*40

utf_16_encoding = u'時間'.encode('utf-16')

print [utf_16_encoding]#['\xff\xfe\xf6e\xf4\x95']

print [utf_16_encoding.decode('utf-16')]#[u'\u65f6\u95f4']

print [utf_16_encoding.decode('utf-16-le')]#[u'\ufeff\u65f6\u95f4']

print utf_16_encoding.decode("utf-16") == utf_16_encoding.decode("utf-16-le")#false

print "utf-16-le"+"*"*40

utf_16_le_encoding = u"時間".encode('utf-16-le')

print [utf_16_le_encoding]#['\xf6e\xf4\x95']

print [utf_16_le_encoding.decode("utf-16")]#[u'\u65f6\u95f4']

print [utf_16_le_encoding.decode("utf-16-le")]#[u'\u65f6\u95f4']

print utf_16_le_encoding.decode("utf-16") == utf_16_le_encoding.decode("utf-16-le")#true

1、由update.txt寫入update_history.txt中時,遍歷出update中所有詞並以mode=『a』,encoding='utf-16'的方式寫入,write()寫入時,若引數為unicode,則需對引數進行encode操作。而『utf-16』編碼會在內容寫入前新增『xff\xfe』標誌

例:[u'時間'.encode('utf-16')]==>['\xff\xfe\xf6e\xf4\x95']
2、由**生成update.txt檔案時,mode='wb',encoding='utf-16',以』wb『寫入時,不會在檔案前新增』\xff\xfe『

問題:怎樣使不斷新增的檔案不會出現『\xff\fe』?

該問題解決方法:先判斷該檔案是否不存在,若不存在則使用(mode='wb',encoding=』utf-16『),若存在則使用(mode='a',endocing='utf-16-le')。不存在時若用(mode='a',endocing='utf-16-le')方式,會因為ascii而產生亂碼

補充:檔案讀寫操作

內建的open()方法開啟檔案時,read()讀取的是str,讀取後需要使用正確的編碼格式進行decode()。write()寫入時,如果引數是unicode,則需要使用你希望寫入的編碼進行encode(),如果是其他編碼格式的str,則需要先用該str的編碼進行decode(),轉成unicode後再使用寫入的編碼進行encode()。如果直接將unicode作為引數傳入write()方法,python將先使用源**檔案宣告的字元編碼進行編碼然後寫入。

python 編碼方式總結

python 編碼方式總結 python 內部使用 unicode 編碼 t 北京 t xe5 x8c x97 xe4 xba xac 1 urllib.quote t 將t轉換為 16進製制編碼 e5 8c 97 e4 ba ac urllib.unquote e5 8c 97 e4 ba ac ...

python修改編碼方式

如果在windows下 可以在python安裝目錄下的lib site packages目錄中,新建乙個sitecustomize.py檔案 也可以建在其它地方,然後手工匯入,建在這裡,每次啟動python的時候設定將自動生效 內容如下 1importsys 2sys.setdefaultencod...

python中的編碼方式

這裡我們以python2.7為例講解python的編碼方式 python2.7的預設編碼方式為ascii字符集,這裡所說的編碼方式指執行編碼方式,在程式設計過程中,有三個地方都涉及到編碼方式 分別是原始碼編碼方式 py檔案的字符集 執行編碼方式,執行環境編碼方式,這裡不詳細贅述 詳見 所以在原始檔的...