歡迎來到字元編碼的世界!
你有沒有想過,電腦明明只懂得二進位(0 與 1),究竟是怎麼顯示文字訊息、電子郵件,甚至是披薩表情符號的呢?這一切都要歸功於一個巧妙的系統,叫做字元編碼(Character Encoding)。
在本章中,我們將學習電腦如何將數字轉換為字母,以及為什麼我們需要不同的系統,以確保全球各地的人都能互相溝通。如果二進位讓你覺得有點「充滿數學味」,也別擔心——這一部分主要講的是電腦背後的秘密代碼!
1. 什麼是字元集(Character Set)?
字元集基本上就是一本「翻譯書」或是一個巨大的清單。它包含了電腦可以識別的所有字元(字母、數字和符號),並為每一個字元分配一個獨一無二的二進位數字。
試著把它想像成餐廳的菜單,每道菜都有一個編號。如果你告訴服務生你想要「42 號」,他們立刻就知道你指的是哪道菜。在電腦裡,如果「菜單」寫著 65 代表字母 'A',那麼每當電腦看到 65,螢幕上就會顯示 'A'。
快速複習:基本概念
• 電腦只處理二進位(0 和 1)。
• 每當你按下鍵盤上的一個鍵,就會發送一個二進位訊號。
• 字元集就是用來告訴電腦該訊號代表哪個字母的指南。
重點總結:字元集是電腦硬體和軟體所能識別的定義清單,其中每個字元都由一個唯一的數字來表示。
2. ASCII:最初的代碼
ASCII(發音為 'as-kee')是「美國資訊交換標準代碼」的縮寫。它是最早建立的主要字元集之一。
標準版的 ASCII 使用 7 個位元(bits)。由於 \(2^7 = 128\),這意味著它可以表示 128 種不同的字元。這些字元包括:
• 大寫字母 (A-Z)
• 小寫字母 (a-z)
• 數字 (0-9)
• 標點符號 (! , . ?)
• 特殊「控制」字元(例如 'Enter' 鍵或 'Space' 空格鍵)
ASCII 的問題:
雖然 128 個字元對於英文來說綽綽有餘,但對於全世界來說根本不夠!ASCII 沒有空間容納數學符號、帶有重音的字母(例如 'é'),或者希臘文、阿拉伯文或中文等其他語言的字元。而且,它絕對沒有空間存放表情符號(emojis)!
你知道嗎?儘管 ASCII 代碼只使用 7 個位元,但電腦通常會用完整的 8 位元位元組(byte)來儲存它,並將第 8 個位元留作 0。
重點總結:7 位元的 ASCII 是一個簡單的字元集,可以儲存 128 個字元。它對英文來說很方便,但對於全球使用來說實在太小了。
3. Unicode:全球解決方案
為了克服 ASCII「空間不足」的問題,Unicode 應運而生。Unicode 的目標是呈現世界上每一種語言中的每一個字元。
Unicode 相較於 ASCII 的優勢:
1. 全球覆蓋範圍:它可以表示來自世界各地的字母系統(中文、西里爾字母、希伯來文等)。
2. 符號與表情符號:它包含了數以千計的科學符號以及你最喜歡的所有表情符號。
3. 相容性:Unicode 在設計上保持了與 ASCII 的「向下相容」。
重要觀點:對於前 127 個字元,Unicode 使用與 ASCII 相同的代碼。這意味著如果字母 'A' 在 ASCII 中是 65,那麼在 Unicode 中也是 65!這讓舊系統能輕鬆與新系統並存運作。
重點總結:Unicode 是一個龐大的字元集,可以表示數千個字元,使其適用於全球通信和現代符號。
4. 使用字元對照表
在考試中,你可能會拿到一張對照表,並被要求在字元與其代碼之間進行轉換。有一個非常重要的「技巧」你需要知道:字元代碼是按順序排列的。
如果你知道 'A' 的代碼,只要往後數,就能算出 'D' 的代碼!
逐步範例:
假設考試題目告訴你 'A' = 65。那麼 'D' 的代碼是多少?
1. A = 65
2. B = 66
3. C = 67
4. D = 68
這同樣適用於小寫字母和數字!如果 'a' 是 97,那麼 'b' 就是 98。如果 '0' 是 48,那麼 '1' 就是 49。
常見錯誤避雷針:
不要混淆數字本身與它的字元代碼。字元 '5' 在儲存時並不是數字 5 的二進位。在 ASCII 中,字元 '5' 的代碼其實是 53!做題時一定要檢查題目提供的對照表。
重點總結:字元在編碼表中是按邏輯分組和排序的。你可以透過遵循字母或數字順序來計算附近字元的代碼。
5. 快速總結
字元集(Character Set):字元清單及其對應的唯一二進位代碼。
7-bit ASCII:可儲存 128 個字元。僅限於英文/拉丁字母。
Unicode:一個巨大的字元集,適用於所有語言和表情符號。前 127 個代碼與 ASCII 完全一致。
順序性:代碼按字母/數字順序排列(A, B, C... 或 1, 2, 3...)。
鼓勵的話:別擔心要死記硬背具體的數字(例如 A=65)。如果考試需要用到,題目一定會提供對照表或起始點。你只需要知道這個系統是如何運作的就足夠了!