• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            做網站用UTF-8還是GB2312?

            經常我們打開外國網站的時候出現亂碼,又或者打開很多非英語的外國網站的時候,顯示的都是口口口口口的字符,

            wordpress程序是用的UTF-8,很多cms用的是GB2312

            為什么有這么多編碼?

            ● utf-8GB2312有什么區別?

            我們在國內做網站是用UTF-8編碼格式還是GB2312編碼格式好  

            .各種編碼的來歷

            可能很多同學一直對字符的各種編碼方式懵懵懂懂,根本搞不清為什么他們有這么多編碼

            ==================================================================

            ANSI編碼

            其實在很久很久以前,有一群人,他們決定用8個可以開合的晶體管來組合成不同的狀態,以表示世界上的萬物。他們看到8個開關狀態是好的,于是他們把這稱為字節

            開始計算機只在美國用。八位的字節一共可以組合出25628次方)種不同的狀態。
            他們把其中的編號從0開始的32種狀態分別規定了特殊的用途,一但終端、打印機遇上約定好的這些字節被傳過來時,就要做一些約定的動作。

            遇上00×10, 終端就換行,遇上0×07, 終端就向人們嘟嘟叫,例好遇上0×1b, 打印機就打印反白的字,或者終端就用彩色顯示字母。他們看到這樣很好,于是就把這些0×20以下的字節狀態稱為"控制碼"

            他們又把所有的空格、標點符號、數字、大小寫字母分別用連續的字節狀態表示,一直編到了第127號,這樣計算機就可以用不同字節來存儲英語的文字了。大家看到這樣,都感覺很好,于是大家都把這個方案叫做 ANSI "Ascii"編碼American Standard Code for Information Interchange,美國信息互換標準代碼)。當時世界上所有的計算機都用同樣的ASCII方案來保存英文文字。

            ====================================================================

            擴展ANSI編碼

            后來,就像建造巴比倫塔一樣,世界各地的都開始使用計算機,但是很多國家用的不是英文,他們的字母里有許多是ASCII里沒有的,為了可以在計算機保存他們的文字,他們決定采用127號之后的空位來表示這些新的字母、符號,還加入了很多畫表格時需要用下到的橫線、豎線、交叉等形狀,一直把序號編到了最后一個狀態255。從128255這一頁的字符集被稱擴展字符集從此之后,貪婪的人類再沒有新的狀態可以用了,美國當時估計也沒想到還有別的國家要用計算機的。

            ====================================================================

            GB2312編碼

            當天朝人們得到計算機時,已經沒有可以利用的字節狀態來表示漢字,況且有6000多個常用漢字需要保存呢。天朝人民就不客氣地把那些127號之后的奇異符號們直接取消掉。

            規定:一個小于127的字符的意義與原來相同,但兩個大于127的字符連在一起時,就表示一個漢字,前面的一個字節(他稱之為高字節)從0xA1用到0xF7,后面一個字節(低字節)從0xA10xFE,這樣我們就可以組合出大約7000多個簡體漢字了。

            在這些編碼里,我們還把數學符號、羅馬希臘的字母、日文的假名們都編進去了,連在 ASCII 里本來就有的數字、標點、字母都統統重新編了兩個字節長的編碼,這就是常說的全角字符,而原來在127號以下的那些就叫"半角"字符了。于是就把這種漢字方案叫做 “GB2312”GB2312 是對 ASCII 的中文擴展。

            =====================================================================

            GBK GB18030編碼

            但是天朝的漢字太多了,我們很快就就發現有許多人的人名沒有辦法在這里打出來,特別是某些天朝領導的名字要是打不出很麻煩的。于是我們不得不繼續把 GB2312 沒有用到的碼位找出來老實不客氣地用上。

            后來還是不夠用,于是干脆不再要求低字節一定是127號之后的內碼,只要第一個字節是大于127就固定表示這是一個漢字的開始,不管后面跟的是不是擴展字符集里的內容。結果擴展之后的編碼方案被稱為 GBK 標準,GBK 包括了 GB2312 的所有內容,同時又增加了近20000個新的漢字(包括繁體字)和符號

            后來少數民族也要用電腦了,于是我們再擴展,又加了幾千個新的少數民族的字,GBK 擴成了 GB18030。從此之后,天朝民族的文化就可以在計算機時代中傳承了。

            在這個標準里,最大的特點是兩字節長的漢字字符和一字節長的英文字符并存于同一套編碼方案里,因此他們寫的程序為了支持中文處理,必須要注意字串里的每一個字節的值,如果這個值是大于127的,那么就認為一個雙字節字符集里的字符出現了。

            那時候凡是受過編程學習的程序員都要每天念下面這個咒語數百遍的折磨:
            一個漢字算兩個英文字符!一個漢字算兩個英文字符……”

            ====================================================================

            UNICODE編碼

            因為當時各個國家都像天朝這樣搞出一套自己的編碼標準,結果互相之間誰也不懂誰的編碼,誰也不支持別人的編碼,連大陸和臺灣這樣只相隔了150海里,使用著同一種語言的兄弟地區,也分別采用了不同的編碼方案:

            當時的天朝人想讓電腦顯示漢字,就必須裝上一個漢字系統。專門用來處理漢字的顯示、輸入的問題,

            但是那個裝臺灣的人士寫的程序就必須加裝另一套支持 BIG5 編碼的倚天漢字系統才可以用,裝錯了字符系統,顯示就會亂了套!這怎么辦?而且世界民族中還有那些暫時用不上電腦的窮苦人民,他們的文字又怎么辦?

            正在這時,天使及時出現了——一個叫 ISO (國際標誰化組織)的國際組織決定著手解決這個問題。他們采用的方法很簡單:廢了所有的地區性編碼方案,重新搞一個包括了地球上所有文化、所有字母和符號的編碼!他們打算叫它 UCS, 俗稱 UNICODE 。( Universal Multiple-Octet Coded Character Set

            UNICODE 中,一個漢字算兩個英文字符的時代已經快過去了。

            無論是半角的英文字母,還是全角的漢字,它們都是統一的一個字符!同時,也都是統一的兩個字節"”

            ===================================================================

            UTF-8UTF-16

            UNICODE 來到時,一起到來的還有計算機網絡的興起,UNICODE 如何在網絡上傳輸也是一個必須考慮的問題,于是面向傳輸的眾多 UTFUCS Transfer Format)標準出現了,顧名思義,UTF8就是每次8個位傳輸數據,而UTF16就是每次16個位,只不過為了傳輸時的可靠性,從UNICODEUTF時并不是直接的對應,而是要過一些算法和規則來轉換。

            ====================================================================

            未來的UCS-4

            如前所述,UNICODE 是用兩個字節來表示為一個字符,他總共可以組合出65535不同的字符,這大概已經可以覆蓋世界上所有文化的符號。如果還不夠也沒有關系,ISO已經準備了UCS-4方案,說簡單了就是四個字節來表示一個字符,這樣我們就可以組合出21億個不同的字符出來(最高位有其他用途),這大概可以用到天朝成立銀河聯邦成立那一天吧!

            .為什么有些網站打開有時候會是亂碼

            網頁亂碼是瀏覽器(如IE等)對HTML網頁解釋時形成的。

            如果在瀏覽網站網頁的代碼寫錯語系(比較少見),有形如:

            <HTML>

            <HEAD>

            <META CONTENT=“text/htmlcharset=ISO-8859-1”></HEAD>……

            </HTML>

            的語句,瀏覽器在顯示此頁時,就會出現亂碼。因為瀏覽器會將此頁語種辨認為歐洲語系

            解決的辦法是將語種“ISO-8859-1”改為GB2312,如果是繁體網頁則改為BIG5

            ==========================================================

            還有一種可能比較大

            就是網頁并沒有標明他用的是何種語系,即沒有

            <META CONTENT=“text/htmlcharset=XXXXX“>,這一行

            而你的計算機默認也不是這種語系,比方我們訪問某些日文網站,經常出現這個問題。這個主要是由于程序員是面向當地的人開發的網站,由于當地都是默認語系,所以沒有亂碼種情況,而你是外來人,你的操作系統本身默認不是當地的語系。所以要手動改語系。

             ============================================================

            至于出現口口口口口口這種情況

            這是由于網站并沒有采用UTF-8編碼而是采用的當地的編碼,如蒙古語的,阿拉伯語的編碼,你的計算機中并沒有這種編碼,所以不能識別

            解決辦法是,事先為瀏覽器安裝多語言支持包(例如在安裝IE時要安裝多語言支持包),這樣在瀏覽網頁出現亂碼時,就可以在瀏覽器中選擇菜單欄下的查看”/“編碼”/“自動選擇”/蒙古),如為繁體中文則選擇查看”/“編碼”/“自動選擇”/阿拉伯語,其它語言依此類推選擇相應的語系,這樣可消除網頁亂碼現象。

            .目前開發網站用什么編碼比較好

            我們一般通俗的理解為:

            utf-8是世界性通用代碼,也完美的支持中文編碼,如果我們做的網站能讓國外用戶正常的訪問,就最好用utf-8

            GB2312屬于中文編碼,主要針對國內用戶使用,如果國外用戶訪問GB2312編碼的網站就會變亂碼。

            網友的反饋一般覺得是用utf-8GB2312要多很多,大家都比較贊同用utf-8

            從一張外國網站的調查也可看得出

            clip_image001 

            由此圖可以看出,2001-2008年期間,GB2312編碼的使用情況雖然幅度不大,但還是在穩定上升的;藍色的線表示出用UTF-8的網站越來越多了。

            我挑選了國內部分幾個大的門戶網站,看看他們用的是哪種編碼格式:

            clip_image002 

            也學有同學就會問了為什么國內幾個網站用GB2312反而更多些呢。

            我也對這個疑問進行了思考,我覺得。應該有3種原因

            ===================================================================

            1. 國內這些網站本身歷史也比較長,開始使用的就是 GB2312編碼,現在改成 UTF-8(以前的網頁)轉換的難度和風險太大

            2. UTF-8編碼的文件比GB2312更占空間一些,雖然目前的硬件環境下可以忽略,但是這些門戶網站為了減少服務器負載基本上所有的頁面都生成了靜態頁,UTF-8保存起來文件會比較大,對于門戶級別的網站每天生成的文件量還是非常巨大,帶來的存儲成本相應提高。

            3. 由于UTF-8的編碼比GB2312解碼的網絡傳輸數據量要大,對于門戶級別的網站來說。這個無形之間就要增大帶寬,用GB2312對網絡流量無疑是最好的優化。

            ====================================================================

            所以在新做站的情況下,建議還是選擇UTF-8比較好。因為沒有上面那些原因,兼容為上策。
              

            除非注明,本博客文章均為原創,轉載請以鏈接形式標明本文地址

            本文鏈接地址: http://www.9fun.org/archives/183.html

             

            posted on 2011-06-18 20:07 肥仔 閱讀(499) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

            午夜欧美精品久久久久久久| 久久久久国产一级毛片高清板| 国产精品美女久久福利网站| 亚洲精品99久久久久中文字幕| 久久久高清免费视频| 精品久久久无码21p发布| 久久99国内精品自在现线| 精品久久久久久综合日本| 亚洲美日韩Av中文字幕无码久久久妻妇 | 色欲综合久久中文字幕网| 国产精品久久久天天影视| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久久久亚洲AV无码专区首JN | 久久婷婷国产麻豆91天堂| 亚洲婷婷国产精品电影人久久| 国内精品久久久久影院免费| 亚洲va久久久久| 国产福利电影一区二区三区久久久久成人精品综合 | 久久精品国产影库免费看| 亚洲国产精品无码久久九九| 日韩欧美亚洲综合久久影院d3| 亚洲va久久久噜噜噜久久狠狠| 久久久久人妻一区精品| 99久久国产免费福利| 精品久久久噜噜噜久久久| 久久久精品国产免大香伊| 色偷偷88欧美精品久久久| 中文字幕成人精品久久不卡| 久久Av无码精品人妻系列| 精品久久久无码21p发布| 久久无码国产专区精品| 人人狠狠综合久久亚洲| 久久人人超碰精品CAOPOREN| 青青草原1769久久免费播放| 97精品国产91久久久久久| 久久久无码一区二区三区| 亚洲午夜久久久久久久久久| 亚洲AV无码久久精品成人| 国产亚洲精品久久久久秋霞| 97久久国产综合精品女不卡| 日韩精品久久无码中文字幕|