編碼問題的思考

2021-09-30 05:17:53 字數 1382 閱讀 3414

編碼問題起源:

計算機只認0與1,要使計算機可以表示人類認識的符號標誌,就要使用編碼來表示了。最初計算機是美國人發明的,他們為了表示英文本母和一些標點,就發明了ascii碼。然後計算機到了歐洲,ascii碼無法滿足歐洲人的需求就有了擴充套件的ascii碼。後來計算機到了中國,中國人發現自己的文字在計算機上無法顯示,就發明了gb2312編碼。最後就發展到不同的國家就有不同的實現。

下面介紹幾個重要的編碼:

1.ascii

用乙個位元組(如0000 0000)即兩個十六進製制數(如ff)表示,可表示256個狀態,但只取其中的128個有用字元(該位元組的最高位沒有用到,為0)。

2.可擴充套件的ascii編碼。

主要是歐洲國家使用,使用了ascii碼的高位表示更多的符號,有多個不同的擴充套件。主要的是iso8859-1編碼(拉丁語系)。

3.gb2312->gbk->gb13000

ascii碼無法表示中文。中國人就使用gb碼表示,gb2312,gbk,gb13000就是其中的各個標準。最主要的不同就是收錄的漢字多少不同,但是編碼是相容的。

4.big5

正體中文的編碼,主要是用於台灣和香港。

5.unicode

unicode只是乙個符號集,它只規定了符號的二進位制**,卻沒有規定這個二進位制**應該如何儲存。內容包含符號6811個,unicode於2023年6月通過dis(draf international standard),目前版本v2.0於1996公布,漢字20902個,韓文拼音11172個,造字區6400個,保留20249個,共計65534個。unicode編碼後的大小是一樣的.例如乙個英文本母"a" 和 乙個漢字"好",編碼後都是占用的空間大小是一樣的,都是兩個位元組。

5.utf-8

utf-8是unicode的實現方式之一。

因為對於英文本母,unicode也需要兩個位元組來表示。所以unicode不便於傳輸和儲存。因此而產生了utf編碼,utf編碼相容iso8859-1編碼,同時也可以用來表示所有語言的字元,不過,utf編碼是不定長編碼,每乙個字元的長度從1-6個位元組不等。另外,utf編碼自帶簡單的校驗功能。一般來講,英文本母都是用乙個位元組表示,而漢字使用三個位元組。

注意,雖然說utf是為了使用更少的空間而使用的,但那只是相對於unicode編碼來說,如果已經知道是漢字,則使用gb2312/gbk無疑是最節省的。不過另一方面,值得說明的是,雖然utf編碼對漢字使 用3個位元組,但即使對於漢字網頁,utf編碼也會比unicode編碼節省,因為網頁中包含了很多的英文本元。

感受:總覺得有很多關於編碼的細節沒寫,不過想了下,具體細節google一下就可以找到了,就寫了下感受較深的東西吧。另外,在我們的應用程式中,我覺得我們能用utf8就盡量使用utf8的編碼。也算是為標準化做下貢獻吧。

編碼規範的幾點思考

實習企業格外注意編碼規範,當時覺得多此一舉,後來回味卻發現有很多奧妙的。1 邏輯判斷 習慣寫法 if a 0 規範寫法 if 0 a 分析 相信80 的人都遇到過少些 的情況,那麼 a 0 就成了賦值運算,除非const修飾,該式就成了用真式了,此類問題還不好發現。反觀第二種寫法,一旦少寫,必然報錯...

編碼規範那些思考

作為軟體開發者,我們可以開發低等級的軟體,但不能開發低質量的軟體。那麼我們要怎麼去保證開發出高質量的軟體呢?這是我們一直關注的問題,而編碼規範正是實施質量保證的第一步。在網上,其實也有很多 規範了,在官網上也有推薦的規範,可是為什麼我們再這裡還要這麼麻煩制定乙個屬於自己的規範呢?其實這也是乙個暢談的...

軟體編碼與哲學思考

對於軟體工程師們來說要想實現改變世界的大夢想,必須從一行行簡單的 編制開始。對於資深的軟體工程師們,通過鍵盤的敲打編寫了數不勝數的 做了大量的軟體程式,但要讓他們說出第一行 從 開始 最後一行 在 結束卻又是非常難回答的問題。為了尋找這個問題的答案我們應循著 軟體是什麼?軟體從 來?軟體到 去?這樣...