標籤:read decode 讀取檔案 print 網路傳輸 big5 編碼方式 遇到 結果
在學習python從檔案中讀取檔案,並將檔案中的字串轉化為列表的時候,發現檔案頭多了一個\ufeff字元。
這個問題前段時間也遇到過了,同樣是上網搜尋了半天才解決,當時只是把問題解決就過去了,但是今天遇到同樣的問題時,知道有這麼一個解決方案,但是怎麼做就是想不起來。古人云,好記性不如爛筆頭,一點沒錯。進入正題。
幾個概念性的東西
ANSCII:
標準的 ANSCII 編碼只使用7個位元來表示一個字元,因此最多編碼128個字元。擴充的 ANSCII 使用8個位元來表示一個字元,最多也只能
編碼 256 個字元。
UNICODE:
使用2個甚至4個位元組來編碼一個字元,因此可以將世界上所有的字元進行統一編碼。
UTF:
UNICODE編碼轉換格式,就是用來指導如何將 unicode 編碼成適合檔案儲存體和網路傳輸的位元組序列的形式 (unicode ->
str)。像其他的一些編碼方式 gb2312, gb18030, big5 和 UTF 的作用是一樣的,只是編碼方式不同。
在Windows下用文字編輯器建立的文字檔,如果選擇以UTF-8等Unicode格式儲存,會在檔案頭(第一個字元)加入一個BOM標識。具體去除方法看看下面代碼
1 # filename: example.py 2 # conding=utf-8 3 4 f = open("news.txt", "r",encoding=‘utf-8‘) 5 file = f.read() 6 file_list = file.split(",") 7 print(file_list) 8 9 file_list2 = file.encode(‘utf-8‘).decode(‘utf-8-sig‘)10 print(file_list2)11 12 13 #列印結果如下14 [‘\ufeff新華社北京2月8日電2月8日‘]15 新華社北京2月8日電2月8日
不懂的還很多,慢慢積累。
python 字串轉列表出現\ufeff的解決方案