1、ASIIjava
美國(國家)信息交換標準(代)碼。windows
計算機中只有數字,一切都是用數字表示,屏幕上顯示的一個一個的字符也不例外。服務器
一個字節可表示的數字爲0-255,足以顯示鍵盤上的全部的字符 例如. a 爲97 b爲 98。這種數字與字符對應的編碼規則,稱爲Asc11 碼,ASC11 碼的最高bit位都是0,也就是說,ASC11碼的值都在0-127之間。網絡
2、GB2312和GBK(中國的本地字符集)網站
中國大陸將每一箇中文字符都用2個字節表示,中文字符第個字節最高bit位都是1。這種編碼格式稱爲 (gb2312) 國標碼 那麼gb2312碼對應的數字都是負數。ui
在此gb2312基礎上,又增了一些,好比繁體字 ,稱爲GBK編碼
附:spa
GB18030編碼是在GBK編碼基礎上的擴充,由於漢字更多,僅僅使用兩位編碼已經不能容納要求的漢字,因此採用了2\4位混和的辦法,能夠支持更多的漢字編碼。操作系統
3、ANSI插件
爲了擴充ASCII編碼,以用於顯示本國的語言,不一樣的國家和地區制定了不一樣的標準,由此產生了 GB2312, BIG5, JIS等各自的編碼標準。這些使用 2 個字節來表明一個字符的各類漢字延伸編碼方式,稱爲 ANSI 編碼,又稱爲"MBCS(Muilti-Bytes Charecter Set,多字節字符集)"。在簡體中文系統下,ANSI 編碼表明 GB2312 編碼,在日文操做系統下,ANSI 編碼表明 JIS 編碼,因此在中文 windows下要轉碼成gb2312,gbk只須要把文本保存爲ANSI 編碼便可。 不一樣 ANSI 編碼之間互不兼容。
4、本地字符集
在中國大陸使用的計算機系統上, GBK和GB2312就被稱爲該系統的本地字符集。
"中國 " 的中字,在中國大陸的編碼是16進制的D6D0,在臺灣是 A4A4 臺灣的編碼稱爲BIG5 大五碼。在一個國家的本地化系統中出現的一個字符,經過電子郵件傳到另一個國家的本地化系統中,看到的就不是那個原始字符了,而是另一個國家的字符或亂碼。
5、Unicode編碼
ISO 組織將全世界的符號進行了統一,稱之爲Unicode編碼。
「中」這個符號,在全世界都是16進制的 4e2d。若是全部的計算機都使用Unicode編碼,則"中"這個字,在全世界上的計算機上都能顯示爲"中",Unicode 編碼的字符佔用兩個字節大小,對於AC11 碼所表示的字符,只是簡單地在AS11碼原來佔用的一個字節的前面,增中一個全部bits爲0的字節, 它表示的字符的個數不會超過65535 ,實際上,它還保留了2000多個數值沒有用於編碼。
unicode 一統天下的局面尚未造成,在至關長時間內,本地化字符編碼將與Unicode編碼共存
java中的字符使用的都是Unicode編碼。
java在經過Unicode保證跨平臺的特性前提下,也支持本地平臺字符集。
6、UTF-8
在java語言和其餘程序的開發過程當中.特別是XML 還涉及到UTF-8 UTF-16。廣義上的unicode也包含 UTF8 和utf-16
UTF-8
--ASC11碼字符保持原樣,伋然只佔用一個字節。
--對於其餘國家的字符,UTF-8 使用2個或三個字節來表示。
--使用utf-8 編碼的文件,一般都要用 EF BB BF 做爲文件開頭的三個字節數據。
7、UTF-8和unicode編碼之間的轉換規則
-- 0001-007f (一個字節)
0xxxxxx
-- 0000或其泛圍在 0080 到 07ff之間的字符,
110xxxxx 10xxxxxx (11個有效bit位) (0080-07ff之間)一個unicode有16位,實際上只有11個有效位,其他都是標誌。
-- 0800 到 ffff 之間的字符,1110xxxx 10xxxxxx 10xxxxxx (16比特有效位),軟件很容易根據UTF-8 編碼中那些固定不變的bit值,來肯定一個字符佔用的是一個字節,仍是兩個字節,仍是三個字節。
8、UTF-8的優勢
-- 不出現ox00 (在c語言中,\0 表明符串的結束結束標誌,說明已經到了字符串的末尾)unicode 中 對於ACS11 字符,它都要佔用兩個字節,增長一個內容爲空(0x00)的字節,浪費,並且這個字節,在C語言和其餘程序有中特殊的應用。
-- 便於應用程序檢查數據在傳輸中是否發生了錯誤 它能夠檢查出數據傳輸過程當中是否出現了錯誤 。
-- 直接處理使用ASC11的文檔
9、聯通,聯想和聯
在記事本中輸入聯通 聯想,聯,查看.分別會看到一些錯誤狀況
聯通 (或聯繫) 出現亂碼
用ue打開,查看一下16進制,分別是C1AA CDA8 C1AA CFE8 //這些都是用的GB2312編碼 若是是中,則是D6D0,也就是 C1AA 是聯 CDA8 是通CFE8是想。能夠用如下方式獲得它產的二進制表示:
int x=0xCDA8; System.out.println(Integer.toBinaryString(x) );
//11000001 10101010 聯 11001101 10101000 通
記事本中的文件,默認是按中文字符集GB2312來存諸的,因此"聯"字就被解析成了 1100 0001 1010 1010 ,通字就被存成了 1100 1101 1010 1000, 打開記事本文檔的時候,這些二進制形式,剛好都都對應上了 UTF-8 的規則,因此係統就認爲這是一個UTF-8 編碼的文件 就按UTF-8來解釋,出現了亂碼,解決的方法:保存的時候,直接按utf-8 保存就不會出現了。
10、用程序查看字符的編碼
查看中文字符的GB2312 碼
查看中文字符的UTF-8 碼
查看中文字符的Unicode 碼
public static void main(String[] args) throws UnsupportedEncodingException { String str="中國"; //查看字符的unicode碼,將一個字符轉成整數,獲得的就是unicode值 /* for(int i=0;i<str.length();i++){ int unicodeCode=str.charAt(i); System.out.println(unicodeCode); // 20013,22269 System.out.println(Integer.toHexString(unicodeCode)); //對應的16進制 4e2d,56fd }*/ //查看字符的gb2312碼 byte [] buff =str.getBytes("gb2312"); for(int i=0;i<buff.length;i++){ System.out.println(buff[i]); // -42,-48, -71,-6 System.out.println(Integer.toHexString(buff[i])); //ffffffd6 ,ffffffd0 ffffffb9,fffffffa } }
附: 域名解析
域名解析是把域名指向網站空間IP,讓人們經過註冊的域名能夠方便地訪問到網站一種服務。
IP地址是網絡上標識站點的數字地址,爲了方便記憶,採用域名來代替IP地址標識站點地址。
域名解析就是域名到IP地址的轉換過程。域名的解析工做由DNS服務器完成。
域名解析也叫域名指向、服務器設置、域名配置以及反向IP登記等等。說得簡單點就是將好記的域名解析成IP,域名解析須要由專門的域名解析服務器(DNS)來完成。,是把域名解析到一個IP地址,而後在此IP地址的主機上將一個子目錄與域名綁定。一個域名對應一個IP地址,一個IP地址能夠對應多個域名;因此多個域名能夠同時被解析到一個IP地址。就要進行解析,首先在域名註冊商那裏經過專門的DNS服務器解析到一個WEB服務器的一個固定IP上:211.214.1.***,而後,經過WEB服務器來接收這個域名,把***.com這個域名映射到這臺服務器上。那麼,輸入***.com這個域名就能夠實現訪問網站內容了.即實現了域名解析的全過程;
hosts文件是Windows系統中一個負責IP地址與域名快遞解析的文件,以ASCLL格式保存。
計算機在鍵入域名(好比www.baidu.com)的時候,首先會去看看hosts文件彙總有沒有關於此域名IP地址的記錄。若是有,就直接登錄該網站;若是沒有再查詢DNS服務器,在Windows 2000/XP系統中位於C:\Windows\System32\Drivers\Etc目錄中。該文件實際上是一個純文本的文件,用普通的文本編輯軟件如記事本等都能打開。 用記事本打開hosts文件,首先看見了微軟對這個文件的說明。這個文件是根據TCP/IP for Windows 的標準來工做的,它的做用是包含IP地址和Host name?主機名?的映射關係,是一個映射IP地址和Host name?主機名?的規定,規定要求每段只能包括一個映射關係,IP地址要放在每段的最前面,空格後再寫上映射的Host name?主機名?。 如今有不少網站不通過用戶贊成就將各類各樣的插件安裝到你的計算機中,有些說不定就是木馬或病毒。對於這些網站咱們能夠利用Hosts把該網站的域名映射到錯誤的IP或本身計算機的IP,這樣就不用訪問了。好比不想訪問http://www.163.com,那咱們在Hosts寫上如下內容: 127.0.0.1 http://www.baidu.com#屏蔽的網站 0.0.0.0 http://www.baidu.com#屏蔽的網站.這樣計算機解析域名就解析到本機或錯誤的IP,達到了屏蔽的目的。
host 文件的位置 win7 和 2003 相同
C:\Windows\system32\drivers\etc\hosts