小生博客:http://xsboke.blog.51cto.comwindows
-------謝謝您的參考,若有疑問,歡迎交流
相信計算機系統編碼問題,讓不少人都頭疼,並且你們常常由於編碼問題而出現各類各樣的煩惱,那麼我也同樣,在這裏,我將本身的理解寫出來,你們能夠參考參考,若是有異議的地方,你們也能夠交流一下.ide
要解決一件事,首先要知道他的此生來世,咱們如今就看看關於計算機編碼的此生來世編碼
1、編碼最初的形態,以及出現的問題和緣由.code
# 最初的形態 由於語言問題,最初每一個幾乎每一個國家都有本身的編碼好比: 美國:ASCII 佔1個字節,只支持英文 中國:GB2312 佔2個字節,支持6700+漢字 中國:GBK GB2312的升級版,支持21000+漢字 日本:Shift-JIS 日本字符 韓國:ks_c_5601-1987 韓國編碼 泰國:TIS-620 泰國編碼 # 產生的問題 這樣就產生侷限性了,好比你中國的windows系統默認是GBK編碼,你在text寫了一個"你好",而後把這個text傳給了在美國的朋友, 你美國的朋友用美國的計算機打開這個text就會顯示亂碼. # 問題產生的緣由 緣由:硬盤裏面存儲的都是二進制數0101010101111000相似這種,因此你以什麼編碼寫到硬盤的,讀的時候就得用什麼編碼讀.
2、解決編碼最初產生的問題.orm
這時候就出現了萬國碼unicode,可是由於unicode涵蓋了幾乎全球全部的文字和二進制的對應關係,因此使用unicode表示一個字符時, 會佔用更多的空間,例如:利用unicode表示"gbk"須要6個字節才能表示,比原來ASCII表示增長了1倍, 爲了解決這個問題,出現了Unicode Transformation Format,學術名UTF: 1. UTF-8: 使用一、二、三、4個字節表示全部字符;優先使用1個字符、沒法知足則使增長一個字節,最多4個 2. 字節。英文佔1個字節、歐洲語系佔2個、東亞佔3個,其它及特殊字符佔4個 3. UTF-16: 使用二、4個字節表示全部字符;優先使用2個字節,不然使用4個字節表示。 4. UTF-32: 使用4個字節表示全部字符;
3、關於轉碼問題.blog
因爲歷史緣由,各個國家依然在大量使用本身的編碼,這時候由於有了utf,因此咱們能夠經過編碼轉換完成語言的正常顯示, 一個對應關係,讓你更好的理解編碼轉換: 1. 讓以GBK編碼的數據在韓國windows系統中正常顯示 中國編碼GBK -> decode解碼爲unicode -> encode編碼成韓國編碼 2. 讓以韓國編碼的數據在中國windows系統中正常顯示 韓國編碼 -> decode解碼爲unicode -> encode編碼成GBK