常用字符集分類
ascii及其擴充套件字符集
作用:表語英語及西歐語言。
位數:ascii是用7位表示的,能表示128個字元;其擴充套件使用8位表示,表示256個字元。
範圍:ascii從00到7f,擴充套件從00到ff。
iso-8859-1字符集
作用:擴充套件ascii,表示西歐、希臘語等。
位數:8位, 範圍:從00到ff,相容ascii字符集。
gb2312字符集
作用:國家簡體中文字符集,相容ascii。
位數:使用2個位元組表示,能表示7445個符號,包括6763個漢字,幾乎覆蓋所有高頻率漢字。
範圍:高位元組從a1到f7, 低位元組從a1到fe。將高位元組和低位元組分別加上0xa0即可得到編碼。
gbk字符集
作用:它是gb2312的擴充套件,加入對繁體字的支援,相容gb2312。
位數:使用2個位元組表示,可表示21886個字元。
範圍:高位元組從81到fe,低位元組從40到fe。
unicode字符集
作用:為世界650種語言進行統一編碼,相容iso-8859-1。
位數:unicode字符集有多個編碼方式,分別是utf-8,utf-16和utf-32。
big5字符集
作用:統一繁體字編碼。
位數:使用2個位元組表示,表示13053個漢字。
範圍:高位元組從a1到f9,低位元組從40到7e,a1到fe。
gb18030字符集
作用:它解決了中文、日文、朝鮮語等的編碼,相容gbk。
位數:它採用變位元組表示(1 ascii,2,4位元組)。可表示27484個文字。
範圍:1位元組從00到7f; 2位元組高位元組從81到fe,低位元組從40到7e和80到fe;4位元組第一三位元組從81到fe,第二四位元組從30到39。
ucs字符集
作用:國際標準 iso 10646 定義了通用字符集 (universal character set)。它是與unicode同類的組織,ucs-2和unicode相容。
位數:它有ucs-2和ucs-4兩種格式,分別是2位元組和4位元組。
範圍:目前,ucs-4只是在ucs-2前面加了0x0000。
按所表示的文字分類
語言字符集
正式名稱
英語、西歐語ascii
iso-8859-1
mbcs 多位元組
簡體中文
gb2312
mbcs 多位元組
正體中文
big5
mbcs 多位元組
簡繁中文
gbkmbcs 多位元組
中文、日文及朝鮮語
gb18030
mbcs 多位元組
各國語言
unicode,ucs
dbcs 寬位元組
要求:要知道當前內容的編碼格式和要轉換為的編碼格式:
示例:
string username = request.getparameter("username").trim();string password = request.getparameter("password").trim();
獲取到的string型別變數:username和password的編碼格式為:iso-8859-1
如何將他們轉換成utf-8編碼,不要出現亂碼,**如下:
string parameter = request.getparameter("username");//獲取到引數對應的二進位制數
byte temp = parameter.getbytes("iso-8859-1");
//通過對應的二進位制數 手動編碼成utf-8的字串
string param = new string(temp, "utf-8");
原理:相同的內容在計算機中的二進位制編碼是一樣的,所以在不同編碼間內容傳遞時,要想不出現亂碼,先將該內容按其原編碼轉換為二進位制序列。然後再將這個二進位制序列按照要轉換的編碼進行翻譯,就不會出現亂碼。
出現的亂碼形式的含義:
?????? ---> 代表字元編碼不匹配造成
师龙 ---> 代表沒有該編碼方式
mysql常見字符集 MySQL字符集
一.字符集介紹 什麼是字符集 charset 字符集 是乙個系統支援的所有抽象字元的集合。字元是各種文字和符號的總稱,包括各國家文字 標點符號 圖形符號 數字等。1.gbk gb2312 gbk gb2312 採用雙位元組字符集,不論中 英文本元均使用雙字元來表示,為了區分中文,將其最高位都設定成1...
常見字符集和編碼方式
ascii unicode gbk gbk2312 utf 8這些字符集和編碼方式的名詞總是讓我們糾結,那麼他們有什麼區別呢?一般來講,除了utf 8是字符集unicode的編碼方式,其餘的例如ascii gbk等都屬於字符集,它們為每乙個字符集的字元都賦予了乙個值,這個值可以是乙個位元組大小 也可...
C 中處理字符集與常見字符集介紹
c 提供不同的字元型別用以應付前述字符集 char可被用於所有8bit以下的字符集,例如us ascii iso latin 1和iso latin 9。此外它可被用於utf 8的8bit值。char16 t 始自c 11 可被用於ucs 2,也可用於utf 16的code unit。char32 ...