【转】刨根究底字符编码之零——前言
前言
一、
字符編碼是計算機世界里最基礎(chǔ)、最重要的一個主題之一。不過,在計算機教材中卻往往浮光掠影般地草草帶過,甚至連一本專門進行深入介紹的著作都找不到(對這一點我一直很困惑,為什么就沒有哪位大牛對這個如此基礎(chǔ)、重要而又如此容易讓人困惑的主題寫一本專著予以介紹呢)。
而在編程實踐中,如果不發(fā)揚死磕到底的精神將字符編碼問題的來龍去脈、前世今生徹底搞清楚,那么它終將會像幽靈一樣揮之不去,導(dǎo)致時不時地被各種與字符編碼相關(guān)的“靈異”事件折磨得死去活來。
本人正是在經(jīng)受了字符編碼所帶來的種種令人崩潰的痛苦之后,才在痛定思痛之余,最終痛下決心,誓要將它刨根究底。
二、
字符編碼的基礎(chǔ)性、重要性,主要體現(xiàn)在它涉及面廣。向下涉及到計算機的底層技術(shù),甚至是硬件實現(xiàn);向上幾乎跟所有的操作系統(tǒng)、編程語言、應(yīng)用程序都密切相關(guān)。
因此,要想真正搞明白字符編碼問題,必須得從計算機的基本概念——位、字節(jié)、字等等開始,再結(jié)合不同的系統(tǒng)環(huán)境與編程環(huán)境,進行具體分析。
三、
類似于字符編碼這樣基礎(chǔ)、重要、應(yīng)用廣泛而又特別容易讓人困惑的主題還有字節(jié)序(即大小端表示)、正則表達式以及浮點數(shù)實現(xiàn)、日期時間處理等等。其中,字節(jié)序、正則表達式跟字符編碼的關(guān)系又密切相關(guān),尤其是字節(jié)序,直接影響字符編碼的字節(jié)序列。而由于正則表達式主要用于在字符串中查找、提取字符或子字符串,要想真正理解正則表達式,也離不開對字符編碼的深入理解。
基于此,本人準備將自己對字符編碼(包括字節(jié)序)與正則表達式進行刨根究底后的一些心得體會寫成兩個系列文章,一方面整理一下自己的思路以備忘,另一方面也真心希望能夠起到拋磚引玉的作用。
四、
下面是字符編碼系列文章將會涉及到的內(nèi)容:
一)關(guān)鍵術(shù)語解釋:位、字節(jié)、字與字長、字符集、編碼、解碼、字符編碼、現(xiàn)代字符編碼模型
二)字符編碼的由來
三)ASCII字符編碼方案
四)擴展ASCII字符編碼方案EASCII以及ISO/IEC 8859系列字符編碼方案
五)漢字編碼方案:GB2312、GBK、GB18030、GB13000、全角與半角、CJK中日韓統(tǒng)一表意文字
六)漢字編碼中區(qū)位碼、國標碼(交換碼)、內(nèi)碼(機內(nèi)碼)、外碼(輸入碼)、字形碼(輸出碼)的區(qū)別及關(guān)系
七)ANSI編碼
八)代碼頁(Code Page)、微軟與ANSI代碼頁
九)Unicode編碼方案的面世
十)Unicode編碼方案概述
十一)字符編碼模型的演變與字節(jié)序
十二)Unicode字符集的編碼方式:碼點、碼元、UTF-8、UTF-16、UTF-32
十三)同樣是多字節(jié)編碼,為什么說UTF-8沒有字節(jié)序的問題,而UTF-16、UTF-32卻有?
十四)微軟為什么跟聯(lián)通有仇——Windows記事本的字符編碼方式
十五)Windows記事本的四種編碼方式(ANSI、Unicode、Unicode big endian、UTF-8)有何區(qū)別?
十六)深入剖析奇葩的Python字符編碼
十七)Vim中的字符編碼問題
十八)Unicode常見問題解答
十九)總結(jié)
總結(jié)
以上是生活随笔為你收集整理的【转】刨根究底字符编码之零——前言的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】C#命名空间大全详细教程
- 下一篇: 【转】Azure Logic App D