Python 基礎:認識編碼與字元集

首頁 >> Research >> 程式設計 >> Python 基礎:認識編碼與字元集

眾所皆知電腦只認得數字的 0 與 1 ,

一般使用的文字都需要經過編碼的動作將其存成數字,

最後再傳給電腦計算處理,

而編碼的規則就是依照字元集來進行,

今天就簡單介紹下

Python 基礎:認識編碼與字元集

首先認識下幾個常見的編碼

ASCII 碼

電腦最小的儲存單位是 bit (位元),
將一個字元以 8個位元由 0 與 1 組成的數字表示,
就成了所謂的 ASCII 表。
在 Python 中,
使用
chr(x)
來輸出一個 ASCII 或 Unicode 字元。
例如: ASCII 表的 97 代表著英文字母: a

Unicode 碼

ASCII 碼對於英文語系的國家在使用上是不會有多大問題的,
不過地球上有許多不同的語言,
而 ASCII 能容納的字元有限,
為了能讓地球上所有的電腦能夠溝通,
所以有 Unicode碼的設計。
在 Python 中,
使用 
ord(x)
來輸出一個 Unicode 的字元。

utf-8 碼

utf-8 是針對 Unicode字元集的可變長度編碼的方式,
在網際網路上使用特別廣泛,
它使用了 1 ~ 4 個 byte 來表示一個字元。

實際應用

以上就是關於各編碼的字元集的介紹,
在 Python 中,
沒有所謂的字元 ( character ) 資料型態,
即使是一個字元的也稱之為字串 ( string )。
在 Python 內部使用 str 這個資料型態沒有問題,
當今天要與外界交換資料時,
特別是在網際網路上以及使用中文的時候,
常出現亂碼,
這是因為編碼型態不同造成,
所以必須將原有的 str 轉為 bytes 型態來使用。
在字串前面加上一個 b,
b'字串'
表示此字串的 bytes 資料。

字串轉 bytes 資料

將字串轉為 bytes資料稱之為編碼,
使用 encode() 來轉換:
stringA = '李'
stringA_to_Bytes = stringA.encode('字元集')

這字元集,
就是使用 “ascii”、”utf-8″、”unicode” 等等上述的編碼方式

bytes 資料轉字串

相反的,
將 bytes資料轉為字串到 Python 來使用,
則需要以 decode() 來轉換:
stringB = stringA_to_Bytes.decode('字元集')
以同樣的字元集來解碼即可。

同樣的字使用不同的編碼方式會有不同的值,
若在程式設計的過程中出現亂碼,
多為編碼的問題所致。



================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================

guangyaw

重點主題: 程式設計: Python , Django,Android 工具與軟體: Open edX,Linux工具,Blender教學 分享各地美景與產品使用心得,遊戲實況,甚至影視戲劇等, 您的訂閱就是頻道成長的原動力。 YouTube 頻道: https://youtube.com/xyawli

You may also like...

1 Response

  1. 2022-04-22

    […] 編碼與字元集 […]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *