txt文字的儲存形式有四種ansi,utf-8,unicode,unicode big endian。後面兩種比較少見,說說前面兩種吧。
普通的開啟檔案的操作是這樣的:
# -*- coding: utf-8 -*-
path=u"輸入你的路徑"
f=open(path)
text=f.readlines()
當txt檔案為ansi格式時,需要如下轉換:
for i in text:
print i.decode("gbk")
或者 text =[i.decode("gbk") for i in text] 此時不會出現以下類似utf-8格式的不可見字元
當txt檔案為utf-8格式時,你會發現讀取第一行的時候是可以讀取的,但是匹配不了,原因是乙個以utf-8編碼的檔案時,會在檔案開始的地方插入三個不可見的字元(0xef 0xbb 0xbf,即bom),所以需要如下轉換:
import codecs
if text[0][:3] == codecs.bom_utf8:
text[0] = text[0][3:]
BufferedReader讀取中文文字亂碼
今天測試lucene構建索引時需要從文字中讀取資料,使用bufferreader獲取文字資料返回亂碼。如下 public static void main string args public static string filetostring file file bufferedreader.c...
Python3 讀取中文檔案txt編碼問題
嘗試用python寫乙個wordcloud的時候,出現了編碼問題。照著網上某些部落格的說法添添改改後,結果是變成了 unicodedecodeerror utf 8 codec can t decode byte 這個錯誤。搗鼓了一天啊,txt 此處為本人現下內心表情 最後,乾脆寫個最簡單的檔案讀取...
python讀取中文檔案亂碼
近期在使用python對中文檔案進行讀寫操作時,發現讀入的中文檔案出現亂碼現象,如圖 後查閱相關資料發現,python預設使用的uascii編碼,而中文需要使用unicode編碼,因此需要對讀入的中文進行格式轉換。轉碼命令為 或者 此時,讀入的文字型別為unicode型別。如果讀入的文字中包含部分資...