計算機如何將一堆 0 和 1 顯示成人類可讀文字?看完秒懂
編碼初始印象
我們在電腦上常見的字符,其本質都是由一連串的0和1所構成。這就像我們過去寫信,必須遵循大家都能理解的文字規則一樣,電腦處理字符轉換也需要一套既定的映射規則。比如ASCII,它是最基礎的,操作簡便,應用廣泛。
計算機剛開始普及的時候,ASCII 編碼就已經出現了。這個編碼最初是為英語量身打造的,僅包含256個字符,只需一個字節就能輕松存儲。在當時的英語使用環境中,無論是辦公還是記錄信息,都非常適用。許多文檔和代碼都采用了這種編碼方式,極大地促進了計算機技術的進步。
編碼擴展難題
隨著計算機在全球范圍內的廣泛應用,非英語國家的用戶也開始廣泛采用。電腦上需要展示各種語言,這就引發了問題。各個國家的語言文字種類繁多,原有的ASCII碼256個字符根本無法滿足需求,因此出現了各種擴展字符集。當擴展集的字符數量超過256后,一個字節就無法表示了,不得不使用兩個字節來表示一個字符。
在亞洲眾多國家,廣泛使用漢字、韓文、日文等字符。若僅用一個字節存儲,顯然不夠。若按數字順序排列,系統在讀取時難以區分單個字符還是兩個字符,從而產生亂碼。這種情況給跨語言交流及計算機信息處理帶來了極大的困難。
編碼規則確定
要解決這個問題,必須確立編碼標準。確立規范后,系統便能明確每個編碼的具體意義。比如,規定0x81不是單獨的字節構成字符,系統便會額外讀取一個字節,然后根據碼表找到相應的字符。
這就如同制定交通法規,若繁忙的街道上缺乏秩序,必定會陷入混亂。一旦確立了編碼規范,計算機便能精確地識別和展示各類字符。遵循這些規則,各國語言文字的信息便能在電腦上精確無誤地展示和處理。
基本多語言平面
在編碼體系里,基本多語言平面(BMP)扮演著重要角色。它包括了從0000到ffff的所有碼點,這個范圍是我們日常使用中最頻繁的。絕大多數我們使用的各種語言的字符都集中在這個平面之中。
在日常生活中,無論是瀏覽網頁還是手機聊天,我們接觸到的字符大多源自BMP格式。除了BMP,還有每65536個點構成一個平面,總共有17個這樣的平面。但這些平面中存儲的字符多是一些不常用的生僻字和特殊符號。
不同編碼方式
Unicode編碼轉換成UTF-8有特定的步驟,那就是將碼點劃分為四個部分,并使用不同的編碼方法。比如,0000到007F這部分對應的是標準ASCII,只用一個字節就能表示;而10000到10FFFF這部分則需要拆分成四份,每份用四個字節來編碼。通過這樣的編碼方式,可以適應各種字符,滿足各種使用需求。
UTF-16編碼將所有字符固定在16位,這意味著它能表示最多65536個字符,涵蓋了BMP區域。盡管UTF-16有其優點,但它存在一個顯著的缺點,那就是它不能兼容最初的ASCII編碼。因此,在電腦系統中,它對基礎ASCII字符的識別并不友好。
html
UTF - 16 細說
UTF-16編碼中存在代理對這一特性,這是因為Unicode編碼范圍超出了FFFF,往上延伸時無法確保每個字符都能用兩個字節表示,所以需要按照特定規則轉換為四個字節。這樣的設計使得UTF-16的編碼過程相對復雜,但同時也能夠處理更多字符的編碼需求。
它雖非常見文件編碼,但在 JavaScript 中卻至關重要。其字符串在內存中是以 UTF-16 編碼形式存在的。對于學習編程,尤其是前端開發,這部分知識不可或缺。掌握了它,才能更有效地處理字符串和展示各類文本信息。你是否對 UTF-16 有更深的理解了?不妨給這篇文章點贊,分享給需要的朋友,并在評論區談談你對電腦字符編碼的看法,以及在使用過程中是否遇到過編碼難題。
作者:小藍
鏈接:http://www.huanchou.cn/content/7977.html
本站部分內容和圖片來源網絡,不代表本站觀點,如有侵權,可聯系我方刪除。