常見字符集 亂碼問題

2022-03-10 13:19:40 字數 2086 閱讀 5073

常用字符集分類

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 ...