python去除\ufeff、\xa0、\u3000 - 程式人生
文章推薦指數: 80 %
今天使用python處理一個txt檔案的時候,遇到幾個特殊字元:\ufeff、\xa0、\u3000,記錄一下處理方法. 程式碼: with open(file_path, mode='r') as f:
程式人生>>python去除\ufeff、\xa0、\u3000
python去除\ufeff、\xa0、\u3000
阿新••發佈:2018-11-08
今天使用python處理一個txt檔案的時候,遇到幾個特殊字元:\ufeff、\xa0、\u3000,記錄一下處理方法
程式碼:withopen(file_path,mode='r')asf:s=f.read()
1.\ufeff位元組順序標記
去掉\ufeff,只需改一下編碼就行,把UTF-8編碼改成UTF-8-sigwithopen(file_path,mode='r',encoding='UTF-8-sig')asf:s=f.read()
2.\xa0是不間斷空白符
\xa0是不間斷空白符 我們通常所用的空格是\x20,是在標準ASCII可見字元0x20~0x7e範圍內。
而\xa0屬於latin1(ISO/IEC_8859-1)中的擴充套件字符集字元,代表空白符nbsp(non-breakingspace)。
latin1字符集向下相容ASCII(0x20~0x7e)。
通常我們見到的字元多數是latin1的,比如在MySQL資料庫中。
去除\xa0str.replace(u'\xa0',u'')
3.\u3000是全形的空白符根據Unicode編碼標準及其基本多語言面的定義,\u3000屬於CJK字元的CJK標點符號區塊內,是空白字元之一。
它的名字是IdeographicSpace,有人譯作表意字空格、象形字空格等。
顧名思義,就是全形的CJK空格。
它跟nbsp不一樣,是可以被換行間斷的。
常用於製造縮排,wiki還說用於擡頭,但沒見過。
去除\u3000str.replace(u'\u3000',u'')去除空格和\xa0、\u3000title.strip().replace(u'\u3000',u'').replace(u'\xa0',u'')
ps:關於\ufeff的一些資料(引自維基百科):
位元組順序標記(英語:byte-ordermark,BOM)是位於碼點U+FEFF的統一碼字元的名稱。
當以UTF-16或UTF-32來將UCS/統一碼字元所組成的字串編碼時,這個字元被用來標示其位元組序。
它常被用來當做標示檔案是以UTF-8、UTF-16或UTF-32編碼的記號。
字元U+FEFF如果出現在位元組流的開頭,則用來標識該位元組流的位元組序,是高位在前還是低位在前。
如果它出現在位元組流的中間,則表達零寬度非換行空格的意義,使用者看起來就是一個空格。
從Unicode3.2開始,U+FEFF只能出現在位元組流的開頭,只能用於標識位元組序,就如它的名稱——位元組序標記——所表示的一樣;除此以外的用法已被捨棄。
取而代之的是,使用U+2060來表達零寬度無斷空白。
在UTF-16中,位元組順序標記被放置為檔案或字串流的第一個字元,以標示在此檔案或字串流中,以所有十六位元為單位的字碼的尾序(位元組順序)。
如果十六位元單位被表示成大尾序,這位元組順序標記字元在序列中將呈現0xFE,其後跟著0xFF(其中的0x用來標示十六進位制)。
如果十六位元單位使用小尾序,這個位元組序列為0xFF,其後接著0xFE。
而統一碼中,值為U+FFFE的碼位被保證將不會被指定成一個統一碼字元。
這意味著0xFF、0xFE將只能被解釋成小尾序中的U+FEFF(因為不可能是大尾序中的U+FFFE)。
UTF-8則沒有位元組順序的議題。
UTF-8編碼過的位元組順序標記則被用來標示它是UTF-8的檔案。
它只用來標示一個UTF-8的檔案,而不用來說明位元組順序。
[1]許多視窗程式(包含記事本)會新增位元組順序標記到UTF-8檔案。
然而,在類Unix系統(大量使用文字檔案,用於檔案格式,用於程序間通訊)中,這種做法則不被建議採用。
因為它會妨礙到如解譯器指令碼開頭的Shebang等的一些重要的碼的正確處理。
它亦會影響到無法識別它的程式語言。
如gcc會報告原始碼檔開頭有無法識別的字元。
而在PHP中,如果沒有啟用輸出緩衝(outputbuffering),它會使得頁面內容開始被送往瀏覽器(即:使用者標頭檔案已被提交),這使PHP指令碼無法指定使用者標頭檔案(HTTPHeader)。
位元組順序標記在UTF-8中被表示為序列EFBBBF,對大部分未準備好處理UTF-8的文字編輯器及網頁瀏覽器而言,在ISO-8859-1的環境中則會顯示。
雖然位元組順序標記亦可以用於UTF-32,但這個編碼很少用於傳輸,其規則如同UTF-16。
對於已於IANA註冊的字符集UTF-16BE、UTF-16LE、UTF-32BE和UTF-32LE等來說,不可使用位元組順序標記。
文件開頭的U+FEFF會被解釋成一個(已捨棄的)"零寬度無斷空白",因為這些字符集的名字已決定了其位元組順序。
對於已註冊字符集UTF-16和UTF-32來說,一個開頭的U+FEFF則用來表示位元組順序。
done!
演算法模板(一)01揹包,多重揹包,完全揹包
«上一篇
演算法模板(二)子序列問題下一篇»
相關推薦
python去除\ufeff、\xa0、\u3000
今天使用python處理一個txt檔案的時候,遇到幾個特殊字元:\ufeff、\xa0、\u3000,記錄一下處理方法
程式碼:withopen(file_...
python去除字元中得'\xa0'
有一個字串列表,
file_size_lis=['738.7\xa0MB','746.5\xa0MB','4.4\xa0...
Python去除多余空格
net.comurndefault-msizeefault大神裏的
今天做爬蟲時。
發現結果中好多多余的空...
Python去除列表中重復的元素
arp代碼pythologpostclassfromkeysted內置
比較容易記憶的是用內置的set
l...
35-Python-去除list中的空字元
https://www.cnblogs.com/yspass/p/9434366.html
list1=['122','2333','3444'...
用python去除圖片中指定顏色的畫素
用python去除圖片白色畫素
需要python和pil
fromPILimportImage
importnumpyasnp
i...
Python字串去空方法Python去除多餘空格
Python去除多餘空格
今天做爬蟲時。
發現結果中好多多餘的空格。
然後有強迫症的我當然不會放過
&nbs...
python去除列表中的重複元素,但不能改變原列表
‘’’去除列表中的重複元素1.列表中的元素有重複,需要去掉重複元素2.要求保留原來的元素順序3.不需要返回值,直接修改原列表即可‘’...
python去除重複元素,統計重複元素
test_labels_all=[1,1,2,2,2,4,6,6]
##去除重複數字
list1=...
Python去除列表中重複的元素
l1=[’b’,’c’,’d’,’b’,’c’,’a’,’a’]l2=list(set(l1))printl2
還有一種據說速度更快的,沒測...
搜尋
基礎教學
Mysql入門
Sql入門
Android入門
Docker入門
Go語言入門
Ruby程式入門
Python入門
Python進階
Django入門
Python爬蟲入門
最近訪問
python去除\ufeff、\xa0、\u3000
as2++shareObject本地緩存存儲位置:
jquery+計算兩個日期相差的天數
spring+國際化遇到的問題總結
解決tensorboard無法訪問此網站
Linux下分卷壓縮較大的檔案
SQL+牛刀小試+1+——+查詢操作
ajax中參數traditional的作用
003-nodejs檔案寫入系統
學習筆記-用c實現三角函數的計算
延伸文章資訊
- 1python去除\ufeff、\xa0、\u3000 - 程式人生
今天使用python處理一個txt檔案的時候,遇到幾個特殊字元:\ufeff、\xa0、\u3000,記錄一下處理方法. 程式碼: with open(file_path, mode='r') ...
- 2网页爬虫中\xa0、\u3000等字符的解释及去除_pengjunlee的博客
Python标准库的 unicodedata 模块提供了 normalize 方法将Unicode字符转换为正常字符,该方法可算是处理这类情况最好的方法了,它会让字符回归到我们期望 ...
- 3python去除\ufeff、\xa0、\u3000 - zqifa - 博客园
今天使用python处理一个txt文件的时候,遇到几个特殊字符:\ufeff、\xa0、\u3000,记录一下处理方法代码:with open(file_path, mode='r'
- 4python 爬蟲爬取內容時, \xa0 、 \u3000 的含義與處理方法
python爬蟲爬取內容時,\xa0、\u3000的含義轉自:https://www.cnblogs.com/BlackStorm/p/6359005.html處理方法str.replace(u...
- 5python3: how to convert "\u3000" (ideographic space) to " "?
hello ['あかさ', 'あいうえ お', 'いい']!. How can I achieve this? python-3.x · python-unicode.