首页
/
每日頭條
/
科技
/
python中字符串使用的字符編碼
python中字符串使用的字符編碼
更新时间:2025-09-11 08:56:44

72節内容),對編碼的概念、分類和作用,做過一個簡單的介紹,今天的内容,還是從"編碼"開始談。

最早的字符串編碼是ASCII碼,是由美國國家标準學會(American National Standard Institute , ANSI )制定的,所以叫做"美國信息交換标準代碼",它的内容是這樣的:

python中字符串使用的字符編碼(Python中字符串編碼的轉換)1

ASCII碼隻包括以上四種字符内容,并且最多隻能表示256個字符。

1967年ASCII第一次以規範标準的類型發表以來,到今天它已經走過了53年的風雨曆程,作為一種國際通用的西文字符編碼标準,它的作用的不可忽視的,但随着技術的發展,由于ASCII碼自身的局限性,它已逐漸被後起之秀-萬國碼"utf-8"所取代。

而在漢語環境下,最适合的編碼标準,應該是我國制定的"GBK""GB2312"。

在Python中,常用的字符串類型有str和bytes兩種。

str表示Unicode字符,就是包括ASCII碼、utf-8碼、GBK碼、GB2312碼之類的編碼;

bytes表示的則是二進制數據,其中包括了編碼的文本。

我們知道,機器語言本質上就是0和1組成的二進制語言,所以str和bytes字符在不能拼接的情況下,它們之間的轉換就非常必要了,因為在儲存和傳輸的時候,是必須要将str字符類型轉換為bytes字節類型的。

今天就來學習如何str和bytes類型之間轉換的方法。

1、在Python中,提供了encode()方法來将str轉換為bytes類型,通稱"編碼過程",它的語法格式是這樣的:

str.encode(encoding="utf-8",errors="strict")

上面的str當然代表了要進行轉換的字符;

方法關鍵字encode後面的小括号中可以包含兩個可選參數,其間使用逗号","分隔;

第一個參數encoding="utf-8",用來指定轉碼的時候所采用的字符編碼,省略時默認為utf-8,當隻用這一個參數時,可以直接用引号引用編碼;

第二個參數errors="strict",用來指定出錯時的處理方式,省略時默認值為strict,而它的值分别是:strict=出現錯誤抛出異常、ignore=忽略錯誤、replace=使用"?"替換錯誤、xmlcharrefreplace=使用XML的字符引用。

譚嗣同就義時留下一首詩,其中兩句:"我自橫刀向天笑,去留肝膽兩昆侖。",頗為大氣磅礴!接下來就用這兩句詩定義一個字符串,并分别采用"GBK"和"utf-8"編碼轉換為二進制編碼輸出,詳見下圖:

python中字符串使用的字符編碼(Python中字符串編碼的轉換)2

觀察上面的結果,發現采用"utf-8"編碼轉換為二進制後要比采用"GBK"的長,這是因為,"GBK"編碼中漢字占兩個字節,"utf-8"編碼中漢字占三個字節。

至于encode()方法的第二個參數,一般情況下使用默認值處理,現在就不贅述了。

2、使用decode()方法将二進制的bytes類型轉換為str類型,通稱"解碼過程",它的語法格式下面這樣的:

bytes.decode(encoding="utf-8",errors="strict")

可以看到,這個語法格式和參數和encode()方法的基本一緻,事實上參數的内容也是一樣的,因為這兩種方法事實上就是一種相互逆轉的過程,所以直接用代碼實例就能說明,詳見下圖:

python中字符串使用的字符編碼(Python中字符串編碼的轉換)3

注意:在解碼過程中采用的字符編碼,要和編碼過程中采用的字符編碼保持一緻。如同上面的實例一樣,編碼時采用"GBK",解碼時依然采用"GBK",否則就會出現異常,詳見下圖:

python中字符串使用的字符編碼(Python中字符串編碼的轉換)4

在使用decode()方法時,還有一點要注意的是:原字符串不會被修改。如果想修改原字符串,隻能通過重新賦值。

以上就是普通字符串和二進制編碼之間互相轉換的方法。各位朋友還能看的入眼嗎?

感謝大家一直以來的支持,明天奉上的是"正則表達式"的内容,敬請拭目以待。

為自己加油,我是"學海無涯自學不惜!"

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
歐萊雅紫熨鬥眼霜正确使用方法
歐萊雅紫熨鬥眼霜正确使用方法
這支眼霜最近風很大,從預售開始要問最火的眼霜是哪款歐萊雅紫熨鬥認第二,恐怕沒有人敢認第一主要功效:淡化細紋¥255/30ml财大氣粗的歐萊雅公司随随便便就把朱一龍請來打出時間雕刻師的概念讓紫熨鬥祛皺的功效深入人心這款眼霜加入了雙重玻尿酸和三...
2025-09-11
戴爾電腦專營店
戴爾電腦專營店
上海戴爾電腦專賣旗艦店(晶品總店)位于;上海市靜安區愚園路68号晶品購物中心4樓27号;處于上海市中心,高端商務CBD地段,有着衆多高端商務樓及購物商場;店内陳列有戴爾全系列筆記本、電腦、顯示器及周邊配件;設有三大特定模拟體驗區(高效辦公、...
2025-09-11
小米手機自帶投屏功能
小米手機自帶投屏功能
現在大家在選擇手機的時候,很多用戶都會選擇大屏手機。主要是在看視頻玩遊戲的時候非常方便。但是對于喜歡玩遊戲的朋友而言,還是覺得手機屏幕沒有電腦屏幕效果好,其實想要将手機屏幕變大,這個時候我們就可以使用小米手機自帶的無線投屏功能了。下面一起看...
2025-09-11
vivoy5怎麼更新系統
vivoy5怎麼更新系統
簡約、樂趣、智慧是FuntouchOS的設計思路,除了手機外觀以及硬件配置之外,對于系統層面的體驗感受也是手機廠商所面臨的重大課題,手機系統功能體驗成為了未來潛在的發展方向,而本次vivoXplay5搭載了基于Android5.1.1深度定...
2025-09-11
電腦上怎麼設置固定ip地址
電腦上怎麼設置固定ip地址
電腦上怎麼設置固定ip地址?當我們需要組建局域網,連接許多電腦的時候我們會重新設置電腦的ip地址,電腦才能連上網那麼怎麼設置電腦的ip地址呢?下面介紹方法:,現在小編就來說說關于電腦上怎麼設置固定ip地址?下面内容希望能幫助到你,我們來一起...
2025-09-11
Copyright 2023-2025 - www.tftnews.com All Rights Reserved