python 字符串轉列表出現ufeff的解決方法
阿新 • • 發佈:2018-02-08
發現 文本編輯器 con spl encoding cond 標準 body lis
在學習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的解決方法