99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

一篇文章徹底講清楚文本編碼這件事,UTF8/GBK/BOM這些到底是什么

0
分享至

由于公眾號推送機制改變,歡迎在公眾號首頁點擊右上【···】,將東哥在灣區設為?“星標”?,及時接收文章推送。

大家好,我是東哥,你身邊放心的香港保險顧問。

這是我的第708篇原創。

上篇文章,我們分享了

作為C端業務,繳費操作都已經是傻瓜化操作。

手機上點兩下就可以完成繳費。

體驗絲滑。

但前提,是你得有一個香港銀行賬戶。

對香港銀行賬戶感興趣的朋友,歡迎微信上聯系東哥。

東哥最近,化身碼農。

像俺自己寫的保單管理系統,已經上千行代碼了。


而且已經開始同步開發了一些小工具供公司內大伙使用。

就很爽。

東哥年輕的時候,瘋狂的喜歡編程,沉迷代碼的世界不可自拔。

還琢磨過轉行去做程序員。

誰知道許多年后,居然曲線救國,從另一個角度成功了。

也是神奇。

給別人開發和寫給自己用,考慮的方面就不一樣。

在處理數據第一步,就卡殼了。

怎么回事兒?

1

文件編碼。

東哥自己的文件,都是用utf8編碼。

誰用誰知道,那叫一個爽。

所以在編程的時候,根本不需要考慮這個問題。

但現在開始處理別人的文件,問題就來了。

傳遞過來的文件,尤其一些工具軟件導出的,編碼就千奇百怪。

傳統上,靠人工推測,估摸著可能是什么編碼,然后一個個嘗試。

但這樣效率也未免太低了。

摸索了半天,最后的結果卻非常簡單。

Python讀取文本文件的編碼,有什么好的辦法?

2

國內的編碼,主要有三個,GB2312、GBK和GB18030。

其中GB2312最為古老,發布時間于1980年。

它是中國大陸早期的簡體中文國家標準,標準編號GB 2312-1980。

涵蓋了 6763個漢字,并支持 682個非漢字字符(如標點、拉丁字母、日文假名等)。

由于比較古老,所以涵蓋面也不足。

如果文本包含超出范圍的字符,會拋出 UnicodeDecodeError。

現代應用中,大家已經不太常用這個編碼了。

有一些舊系統可能仍有殘留。

3

第二個,GBK。

GBK發布于1995年,是GB2312 的擴展。

字符范圍從上一代的6763個漢字,擴展到了 21886個漢字。

不僅覆蓋了 GB2312 全部字符,還新增繁體字、生僻字及符號。

還支持中日韓統一表意文字(CJK Unified Ideographs) 的擴展部分。

這個編碼最大的好處是兼容 GB2312,即所有 GB2312 編碼的字符在 GBK 中保持不變。

保證了向后兼容。

一直是Windows 簡體中文版的默認編碼,直到 Windows 10。

4

第三個,GB18030。

這個編碼發布于 2000年,最新版為 GB18030-2022。

這個編碼是中國國家強制標準,覆蓋所有 Unicode 字符。

包括簡體、繁體、少數民族文字、Emoji 等。

一共包含 87887個漢字,遠超過 GBK的2萬個。

而且它在設計上,完全兼容 GB2312 和 GBK,可無縫替代舊編碼。

中國大陸銷售的軟件產品必須支持 GB18030。

5

到這兒,就很簡單了。

對于國內軟件,可以優先嘗試GB18030。

無論是GB2312還是GBK,它都能讀取。

那是不是直接選用GB18030就可以了?

不行。

還記沒記得,東哥自己一直用的是UTF8。

什么是UTF8?

UTF8(Unicode Transformation Format-8)是國際標準,是Unicode字符集的實現方式之一,由國際組織Unicode Consortium維護。

它的設計目標是解決全球多語言文本的統一編碼問題。

作為國際標準,它在多語言支持、國際化應用或開源項目中應用更為廣泛。

東哥雖然沒有多語言支持的需求,但為了俺的國際范兒,一直用的是UTF8。

而且市面上很多文件也是以UTF8編碼的。

所以我們還得考慮UTF8的編碼。

6

涉及到UTF8的話,就天然的存在一個問題,BOM。

具體啥是BOM,咱這里不細述了,微軟早先年搞出來的東東。

算是業界的一朵奇葩。

所以現在同樣UTF8編碼的文件,有的有BOM,比如用Windows記事本保存的;

有的沒有BOM,比如Web或Mac系統的生成的。

讀取的時候,就需要再次判斷,就很麻煩。

怎么辦?

Python已經考慮了這個問題,讀入的時候,可以考慮無腦用有BOM的方式讀取。

如果開頭有BOM,它就略過BOM,讀入后面的實際內容;

如果開頭沒有BOM,它就正常讀入內容。

不需要我們人工再次判斷。

7

所以現在,我們有了兩個選擇,GB18030和帶BOM的UTF8。

這兩個基本涵蓋了日常99%的應用。

具體實現上,可以用一個異常來嘗試。

def openr(fpath=None) -> str:
    '''     open file to read with utf8 or fallback encodings.     '''
    # 嘗試多種編碼,避免報錯和亂碼
    encodings = ["utf-8-sig", "gb18030"]
    for enc in encodings:
        try:
            ifile = open(fpath, mode='r', encoding=enc)
            return ifile
        except UnicodeDecodeError:
            continue
    raise ValueError("無法解碼文件,請檢查編碼")

還有沒有其他情況需要考慮?

有。

比如有些文件,既不是UTF8,又不是GB18030的情況。

這時候可以考慮用專門的編碼檢測工具chardet

pip install chardet

但以上內容,足以覆蓋東哥日常,就不在拓展啦。

人生苦短,我用Python。

對酒當歌,我用Python。

這是屬于理工男的浪漫。

愛生活,愛拉芳,Python天天見。

能看懂這個梗的,是不是都有點年紀了

關注東哥,保護中產財富,一起慢慢變富。

東哥目前提供如下服務,有需要的朋友歡迎微信來撩。

  • ,一個經營強鏈接的社群。

群里有老板、投資人、500強高管、律師、HR……

討論個人IP打造、中年人第二曲線、碩博學歷提升、企業出海項目等。

  • ,分享一些專業金融知識及硬核資訊;

討論香港保險、香港銀行開戶、美股投資、比特幣投資、房產投資等。

  • ,1-2小時的深度交流。

涵蓋自媒體指導、職業規劃、就業指導、IP打造、個人優勢挖掘、銷售獲客技巧、資源鏈接等。

人是萬物的尺度。找一群人一起走,一起慢慢變富。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
韋世豪妻子“餃子”其人其事

韋世豪妻子“餃子”其人其事

低調看天下
2025-07-21 15:48:08
死緩!“靠軍工吃軍工”的何文忠,斂財2.89億,到案后有重大立功表現

死緩!“靠軍工吃軍工”的何文忠,斂財2.89億,到案后有重大立功表現

政知新媒體
2025-07-21 17:27:09
丈夫發聲:無法原諒親弟弟強奸、追殺妻子

丈夫發聲:無法原諒親弟弟強奸、追殺妻子

中國新聞周刊
2025-07-21 22:39:04
中國雅魯藏布江電站開建!西方媒體全不吭聲了,莫迪無奈低頭

中國雅魯藏布江電站開建!西方媒體全不吭聲了,莫迪無奈低頭

阿離家居
2025-07-21 18:12:03
男子連買三臺小米汽車,稱永久不會賣!雷軍發文祝賀:“尊敬的小米車主,祝你喜提第三輛”

男子連買三臺小米汽車,稱永久不會賣!雷軍發文祝賀:“尊敬的小米車主,祝你喜提第三輛”

魯中晨報
2025-07-21 09:44:10
浙江一男子將鄰居妻子藏閣樓13年,丈夫2007年才發現,結局意外

浙江一男子將鄰居妻子藏閣樓13年,丈夫2007年才發現,結局意外

莉雅細細談
2024-01-07 20:35:03
坑了大馬45億美元!被多國通緝的華裔富豪,竟藏身上海豪宅

坑了大馬45億美元!被多國通緝的華裔富豪,竟藏身上海豪宅

財通社
2025-07-21 17:43:14
四川省達州市人大常委會原黨組成員、副主任羅建被查

四川省達州市人大常委會原黨組成員、副主任羅建被查

魯中晨報
2025-07-21 20:00:04
王勵勤認可!體育局開始懸掛張繼科照片,或參與國乒新任教練競聘

王勵勤認可!體育局開始懸掛張繼科照片,或參與國乒新任教練競聘

十點街球體育
2025-07-21 23:23:09
從喜劇黑馬到人設崩塌? 她的走紅,全靠賈玲讓位和抱團炒作!

從喜劇黑馬到人設崩塌? 她的走紅,全靠賈玲讓位和抱團炒作!

毒舌八卦
2025-07-21 20:03:12
國家出手6位首富被抓!罪名全曝光,坑慘老百姓,真是太招人恨了

國家出手6位首富被抓!罪名全曝光,坑慘老百姓,真是太招人恨了

云景侃記
2025-07-19 19:18:52
40多歲,高管失業,有的已去擺地攤

40多歲,高管失業,有的已去擺地攤

南風窗
2025-07-21 15:48:38
廣東一高校堪稱爆冷之王,缺額超6300人,個別專業組竟無人報考

廣東一高校堪稱爆冷之王,缺額超6300人,個別專業組竟無人報考

百家論大學
2025-07-20 14:00:02
官方出手!親美辱華、為安倍哭喪的呂麗萍,今自食惡果再次變笑話

官方出手!親美辱華、為安倍哭喪的呂麗萍,今自食惡果再次變笑話

姩姩有娛
2025-07-21 17:50:07
“蘇超最大的腕”進球了!39歲村支書打入世界波:這球不是蒙的,最崇拜羅納爾多

“蘇超最大的腕”進球了!39歲村支書打入世界波:這球不是蒙的,最崇拜羅納爾多

極目新聞
2025-07-21 15:41:33
今天凌晨,曾志偉公開道歉

今天凌晨,曾志偉公開道歉

東方不敗然多多
2025-07-21 10:02:02
男子破產養家跑外賣8年,這天收到1800萬匯款,查到匯款方:怎么是你

男子破產養家跑外賣8年,這天收到1800萬匯款,查到匯款方:怎么是你

古怪奇談錄
2025-07-19 10:06:36
廣州一知名老板跳樓身亡,僅53歲,公司停業,1000多員工討要工資

廣州一知名老板跳樓身亡,僅53歲,公司停業,1000多員工討要工資

180視角
2025-07-21 18:05:31
48小時內,中方連發三道“警告”?王毅公開表態,不許美方做一件事

48小時內,中方連發三道“警告”?王毅公開表態,不許美方做一件事

愛下廚的阿釃
2025-07-22 03:30:15
央視曝光“毒手機殼”!會基因突變,致癌率極高,家里有的快丟掉

央視曝光“毒手機殼”!會基因突變,致癌率極高,家里有的快丟掉

姩姩有娛
2025-07-21 17:49:40
2025-07-22 04:51:00
張利東 incentive-icons
張利東
關注東哥,保護中產財富,一起慢慢變富。
500文章數 76關注度
往期回顧 全部

科技要聞

劉強東闊氣出手!兩月投了4家具身智能公司

頭條要聞

男子為終身質保花60萬買蔚來 1年跑17萬公里權益沒了

頭條要聞

男子為終身質保花60萬買蔚來 1年跑17萬公里權益沒了

體育要聞

這四位大兄弟,你們真敢要3000萬吶

娛樂要聞

五哈全員為寶石老舅送祝福

財經要聞

炒港美股"補稅潮"突襲?一文了解始末

汽車要聞

勞斯萊斯前設計師全新力作 榮威M7正式亮相

態度原創

本地
親子
健康
旅游
公開課

本地新聞

換個城市過夏天 | 誰打翻了濰坊的調色盤?

親子要聞

看這小孩調皮的想上窗臺,媳婦炒幾個菜給公婆送,炒蘑菇太好吃啦

呼吸科專家破解呼吸道九大謠言!

旅游要聞

熱聞|清明假期將至,熱門目的地有哪些?

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 武义县| 璧山县| 武汉市| 湛江市| 平南县| 婺源县| 巴彦县| 西乡县| 卢氏县| 泉州市| 舞阳县| 达州市| 阿图什市| 沈丘县| 乌鲁木齐县| 田林县| 诏安县| 颍上县| 贵溪市| 扬中市| 报价| 秭归县| 新乡市| 烟台市| 长沙市| 永州市| 竹北市| 尤溪县| 林州市| 马边| 北京市| 商水县| 崇仁县| 利津县| 鄂托克旗| 西宁市| 新蔡县| 新巴尔虎左旗| 浠水县| 东乌珠穆沁旗| 玉门市|