學習電腦編碼utf-8,ansi編碼的基礎知識等

我是壞男孩發表於2018-09-25

大學時期就很好奇,我們所看到的文字在電腦裡面是怎麼記憶的,感覺不可能是文字本身,今天剛好學習java的io流知識,順便補充了一下電腦編碼知識,先看一下下面小王和小張的例子,然後思考電腦怎麼存放文字? 電腦是怎麼識別文字的?

在顯示器上看見的文字、圖片等資訊在電腦裡面其實並不是我們看見的樣子,即使你知道所有資訊都儲存在硬碟裡,把它拆開也看不見裡面有任何東西,只有些碟片。假設,你用顯微鏡把碟片放大,會看見碟片表面凹凸不平,凸起的地方被磁化,凹的地方是沒有被磁化;凸起的地方代表數字1,凹的地方代表數字0。硬碟只能用0和1來表示所有文字、圖片等資訊。那麼字母”A”在硬碟上是如何儲存的呢?可能小張計算機儲存字母”A”是1100001,而小王儲存字母”A”是11000010,這樣雙方交換資訊時就會誤解。比如小張把1100001傳送給小王,小王並不認為1100001是字母”A”,可能認為這是字母”X”,於是小王在用記事本訪問儲存在硬碟上的1100001時,在螢幕上顯示的就是字母”X”。也就是說,小張和小王使用了不同的編碼表。小張用的編碼表是ASCII,ASCII編碼表把26個字母都一一的對應到2進位制1和0上;小王用的編碼表可能是EBCDIC,只不過EBCDIC編碼與ASCII編碼中的字母和01的對應關係不同。一般地說,開放的作業系統(LINUX 、WINDOWS等)採用ASCII 編碼,而大型主機系統(MVS 、OS/390等)採用EBCDIC 編碼。在傳送資料給對方前,需要事先告知對方自己所使用的編碼,或者通過轉碼,使不同編碼方案的兩個系統可溝通自如。

看了上面例子,大家都知道了電腦怎麼存放文字了,就是用0和1儲存的,也知道了為什麼會產生編碼並且電腦是怎麼識別文字的

說白了,編碼就是一個規矩規則,什麼規則呢?就是我們文字都是存放在計算機是以01010101等記錄資訊的,文字也一樣,那麼就有一種規則讓計算機知道01010101表示什麼,00001111表示什麼,於是,在美國,貌似1963年就提出了ASCII編碼,後來由於各種原因,例如 ASCII不能表示漢字等,所以各個國家都有自己的編碼,中國弄了gbk等

那編碼有什麼要注意的嗎?就是經常運到的編碼問題,為什麼會產生編碼問題呢,其實很簡單,例如 utf-8 規定說: 01010101 10101010 11110000 表示 “你” 這個漢字,被拷貝到了gbk那裡,那邊是兩個兩個識別的,所以 01010101 10101010 11110000    就會出現亂碼,不符合gbk的規則

有一個有趣的事情,就是你在電腦上面,建立一個txt檔案,裡面輸入"聯通" 儲存, 然後再開啟,會發現亂碼,為什麼會這樣呢,參考一下 https://blog.csdn.net/hherima/article/details/39548551吧                         https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81/8446880 更深入學習吧 

相關文章