特殊字元:\ufeff、\xa0、\u3000 處理方法 - me前沿
文章推薦指數: 80 %
\ufeff 位元組順序标記. 去掉\ufeff,隻需改一下編碼就行,把UTF-8編碼改成UTF-8-sig. with open(file_path, mode='r', encoding='UTF-8-sig') as f:.
登入郵箱密碼記住我忘記密碼?登入沒有賬号?新增賬號注冊郵箱驗證碼擷取驗證碼密碼登入為你推薦近期熱門最新消息熱門分類元宇宙電動汽車虛拟現實火星移民元宇宙電動汽車虛拟現實火星移民20)?false:true">傳回頂部特殊字元:\ufeff、\xa0、\u3000處理方法0复制成功特殊字元:\ufeff、\xa0、\u3000處理方法2021-09-2808:55:00今天使用python處理一個txt檔案的時候,遇到幾個特殊字元:\ufeff、\xa0、\u3000,記錄一下處理方法withopen(file_path,mode='r')asf:
s=f.read()
\ufeff位元組順序标記去掉\ufeff,隻需改一下編碼就行,把UTF-8編碼改成UTF-8-sigwithopen(file_path,mode='r',encoding='UTF-8-sig')asf:s=f.read()\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'')\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則用來表示位元組順序。
位元組序位元組流空白符碼字字元串上一篇:智能硬體跳票下,供應鍊幫扶體系成為問題關鍵下一篇:SassMap(映射)函數
最近更新國慶假期你們說:要出去看風景,我覺得我這裡能湊合。
你們說:想出去靜一靜,我覺得我這裡也能感悟人生。
你們說:要出去露營,我09-30翻開之前的筆記,繼續在注會考證的道路上奔跑起來[加油]不知道諸位會計友友們什麼感想,會計的道路真的是好難走啊[流淚]畢業09-30三車齊發!把電動車賣到50萬元的比亞迪,在歐洲有戲嗎?09-30太陽系誕生于一個普通的古老恒星團09-30薦書|《KUKA工業機器人與西門子S7-1200PLC技術及應用》10-01百米長卷繪祖國渝北消防攜童心獻禮國慶09-30#商業大事議#【“人類高品質”奶奶#梅耶馬斯克#的硬核人生】很多人都崇拜#馬斯克#,可馬斯克真正崇拜的卻隻有他的母親。
他09-30滲透率提前三年達标,新能源車的發展到頭了嗎?09-30中國🇨🇳航天·空間站問天艙轉位成功!空間站“L”型構型狀态良好!祝賀!太棒啦!空間站組合體由兩艙“一”字構型轉變為兩艙“09-301480光年外的未解之謎,擋住塔比星的巨物,是“外星人”造物?09-30人類首次小行星防禦撞擊:用乒乓球撞金字塔,速度夠快就管用09-30商業故事|國産機器人“執掌”手術刀09-30
相關内容【圖像壓縮重建】基于霍夫曼算法實作圖像壓縮重建matlab代碼12-12JavaScript--築基09-06Dart學習記錄——1.Dart語言基礎09-06Kotlin學習記錄——2.Kotlin基礎09-06Scala學習記錄——2.Scala的資料09-06poi生成圖檔到excel08-31MyTimeUtil--個人最常用時間管理方法08-31php時間和日期函數總結09-06HBase資料模型、概念視圖和實體視圖09-05Java(45):Java小結之異常篇09-02關于自定義協定分割字段的實作09-02List的一些操作09-01RedisTemplate中opsForValue的使用(複制粘貼的,沒有練習,找時間回顧)08-31Node.js實戰對于Buffer和Stream子產品系統的深入剖析Buffer緩沖區寫入緩沖區從流中讀取資料子產品系統08-17XML反序列化遇到數字型節點值為空導緻反序列化異常07-06XML的特殊字元處理06-20100)?false:true"x-data="topBtn"@click="scrolltoTop"x-cloak>
延伸文章資訊
- 1“ ” U+3000 Ideographic Space Unicode Character - Compart
U+3000 is the unicode hex value of the character Ideographic Space. Char U+3000, Encodings, HTML ...
- 2python去除\ufeff、\xa0、\u3000 - zqifa - 博客园
1.\ufeff 字节顺序标记. 去掉\ufeff,只需改一下编码就行,把UTF-8编码改成UTF-8-sig with open(file_path, mode='r', encoding='...
- 3python3: how to convert "\u3000" (ideographic space) to " "?
txt', 'r', encoding='utf-8') as f: old = [line.strip() for line in f.readlines()] send_mail(from,...
- 4Utf 8 \u3000-2021-04-10 | 輕鬆健身去| 萌寵公園-2022年9月
Utf 8 \u3000相關資訊,Unicode Character 'IDEOGRAPHIC SPACE' (U+3000) ... 首頁\ufeffUtf8\u3000 Utf8\u3000...
- 5Unicode Character 'IDEOGRAPHIC SPACE' (U+3000)
UTF-8 (hex), 0xE3 0x80 0x80 (e38080). UTF-8 (binary), 11100011:10000000:10000000. UTF-16 (hex), 0...