理解計算機中的編碼問題

小生博客: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
相關文章
相關標籤/搜索