2017-06-25 19:46:48
計算機中存在著很多編碼,諸如ascii,gbk,iso,utf-8,utf-16等,那這些編碼到底是怎麼產生,又有什麼區別呢?
字元的含義:字元就是一系列有意義的圖形,如 a,[,u等等。該開始的時候,是美國人發明了計算機語言,英文本母只有26個,加上加減乘除,阿拉伯數字等等字元也只有127個,於是8位就可以表示所有的字元了,於是美國人便將8位稱為乙個位元組。並且根據其中的對應關係畫了乙個ascii碼表。於是第一張ascii碼表便出現了。
歷史在進步,歐洲人進場,他們有各種其他的語言,諸如拉丁文,希臘文等。之前美國人值用了前127個,後面的128-255是待定的,於是,各個國家就將自己國家的字元塞進了後面128-255中,於是這就生成了各種iso 8859字符集。比如西歐是iso/iec 8859-1,中歐是iso/iec 8859-2等。
隨著中國改革開放,中國開始投身網際網路大潮中,可是中文字元遠遠不止256個,這樣的話顯然原先的ascii就不適用了,如果改用16位來表示的話就會65536個,這樣的就完全足夠了。中國人是非常聰明的,首先將16位分成前8位和後8位。如果前8位小於等於127的話,那麼該字元就是普通字元,如果前8位超過127,那麼就需要和後8位結合起來共同形成乙個漢字。這就是gb2312,後來原先加入的漢字不夠用了,之後又國家又組織了一批人將剩下的漢字也加入了進去,形成了gbk。這裡gb就是國標的意思,k是擴充套件的意思。
灣灣當然是不能用大陸的gb系列的編碼,於是灣灣就開發了big5的編碼方式。
隨著網際網路的普及,出現了各種各樣的編碼方式。當然這對於網際網路進一步的發展是非常不利的。於是統一編碼方式unicode出現了,unicode採用的是乙個通用的字符集ucs,每個語種都從中劃出一塊自己的領域。目前採用的是ucs-2,就是不論中文英文都採用兩個位元組進行表示,也就是utf-16。如果不夠怎麼辦,不用擔心,如今已經有了ucs-4的預定方案。那將是幾十億量級的字符集,真的是綽綽有餘了。
不過,美國人不幹了,我只要8個位元組就足夠了,憑什麼讓我用16個位元組來表示,這不是浪費頻寬嗎。於是utf-8出現了,在utf-8中中文佔了三個位元組,比gbk要所佔乙個位元組,所以很多中國公司內部的編碼方式使用gbk的,這樣更節省資源。
計算機中的編碼
ascii 英文編碼,用乙個位元組 0 255 表示英文本元 gb2312 漢字編碼,用兩個位元組表示中文漢字,同時相容英文 多餘的部分用0補足 但是其他國家的文字都有自己的編碼方式,當不同國家的文字在一起時不能相容,此時出現了unicode編碼 但是unicode編碼在表示英文本元時會浪費一倍的儲...
計算機中的字元編碼
計算機中的字元編碼 ascii 美國資訊交換標準 american standard code for information interchange 基於拉丁字母的一套電腦編碼系統。它主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統。gb2312 國標2312編碼,單雙位元組編...
計算機中併發問題
物理計算機中的併發問題和jvm中的情況有很多相似之處,jvm的併發解決方案也很大的參考了物理機的實現。在計算機中,絕大多數的運算任務都不可能只靠處理器 計算 就能完成,處理器 cpu 至少要與記憶體 memory 互動,如讀取運算資料 儲存運算結果等,這些i o操作是很難消除的。也就是說,cpu要完...