介紹幾種常見的編碼
中文編碼
1.GB2321:簡體中文編碼顶捷,一個漢字占用2個字節(jié),在大陸是主要編碼方式屎篱。當文章/網(wǎng)頁中包含繁體中文服赎、日文、韓文等等時交播,這些內容可能無法被正確編碼重虑。
2.BIG5:繁體中文編碼,主要在臺灣地區(qū)采用秦士。
3.GBK:支持簡體及繁體中文缺厉,但對他國非拉丁字母語言還是有問題。
4.UTF-8:Unicode編碼的一種隧土。Unicode用一些基本的保留字符制定了三套編碼方式提针,它們分別UTF-8,UTF-16和UTF-32。在UTF-8中曹傀,字符是以8位序列來編碼的辐脖,用一個或幾個字節(jié)來表示一個字符。這種方式的最大好處皆愉,是UTF-8保留了ASCII字符的編碼做為它的一部分嗜价。UTF-8俗稱“萬國碼”,可以同屏顯示多語種幕庐,一個漢字占用3字節(jié)久锥。為了做到國際化,網(wǎng)頁應盡可能采用UTF-8編碼翔脱。
當然奴拦,處理中文時http頭也要改成UTF-8編碼的-----加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8">。
韓文編碼
1.EUC_KR:用來儲存韓國KSX1001字集(舊稱KSC5601)的字符届吁。此規(guī)格由KSX2901(舊稱KS C 5861)定義
KS X 1001字元使用兩個字節(jié)來表示错妖。
“高位字節(jié)”使用0xA1-0xFE
“低位字節(jié)”使用0xA1-0xFE
日文編碼
1.Shift_JIS :是一個日本電腦系統(tǒng)常用的編碼表。它能容納全角及半角拉丁字母疚沐、平假名暂氯、片假名、符號及日語漢字亮蛔。
它被命名為Shift_JIS的原因痴施,是它在放置全角字符時,要避開原本在0xA1-0xDF放置的半角假名字符。
在微軟及IBM的日語電腦系統(tǒng)中辣吃,即使用了這個編碼表动遭。這個編碼表稱為CP932。
2.EUC_JP:用來存儲日本JISx0208以及JISx0212的字集的字符神得,但日文文字較多使用ISO-2022-JP或Shift_JIS的方法來表示厘惦。
俄文編碼
1.KOI8-R:KOI-8系列的斯拉夫文字8位元編碼,供俄語及保加利亞語使用哩簿。
字符集
常用字符集分類
ASCII及其擴展字符集
作用:表語英語及西歐語言宵蕉。
位數(shù):ASCII是用7位表示的,能表示128個字符节榜;其擴展使用8位表示羡玛,表示256個字符。
范圍:ASCII從00到7F宗苍,擴展從00到FF稼稿。
ISO-8859-1字符集
作用:擴展ASCII,表示西歐浓若、希臘語等渺杉。
位數(shù):8位,
范圍:從00到FF挪钓,兼容ASCII字符集是越。
GB2312字符集
作用:國家簡體中文字符集,兼容ASCII碌上。
位數(shù):使用2個字節(jié)表示倚评,能表示7445個符號,包括6763個漢字馏予,幾乎覆蓋所有高頻率漢字天梧。
范圍:高字節(jié)從A1到F7, 低字節(jié)從A1到FE。將高字節(jié)和低字節(jié)分別加上0XA0即可得到編碼霞丧。
BIG5字符集
作用:統(tǒng)一繁體字編碼呢岗。
位數(shù):使用2個字節(jié)表示,表示13053個漢字蛹尝。
范圍:高字節(jié)從A1到F9后豫,低字節(jié)從40到7E,A1到FE突那。
GBK字符集
作用:它是GB2312的擴展挫酿,加入對繁體字的支持,兼容GB2312愕难。
位數(shù):使用2個字節(jié)表示早龟,可表示21886個字符惫霸。
范圍:高字節(jié)從81到FE,低字節(jié)從40到FE葱弟。
GB18030字符集
作用:它解決了中文壹店、日文、朝鮮語等的編碼芝加,兼容GBK茫打。
位數(shù):它采用變字節(jié)表示(1 ASCII,2妖混,4字節(jié))÷盅螅可表示27484個文字制市。
范圍:1字節(jié)從00到7F; 2字節(jié)高字節(jié)從81到FE,低字節(jié)從40到7E和80到FE弊予;4字節(jié)第一三字節(jié)從81到FE祥楣,第二四字節(jié)從30到39。
UCS字符集
作用:國際標準 ISO 10646 定義了通用字符集 (Universal Character Set)汉柒。它是與UNICODE同類的組織误褪,UCS-2和UNICODE兼容。
位數(shù):它有UCS-2和UCS-4兩種格式碾褂,分別是2字節(jié)和4字節(jié)兽间。
范圍:目前,UCS-4只是在UCS-2前面加了0x0000正塌。
UNICODE字符集
作用:為世界650種語言進行統(tǒng)一編碼嘀略,兼容ISO-8859-1。
位數(shù):UNICODE字符集有多個編碼方式乓诽,分別是UTF-8帜羊,UTF-16和UTF-32。
在IOS中的應用
+ (NSData *)encodeDataWithString:(NSString *)string
{
/**
kCFStringEncodingGB_18030_2000:簡體中文
kCFStringEncodingBig5:繁體中文編碼
kCFStringEncodingEUC_KR:韓文編碼
kCFStringEncodingShiftJIS:日文編碼
kCFStringEncodingEUC_JP:日文編碼
kCFStringEncodingKOI8_R:俄文編碼
*/
NSData *data = [string dataUsingEncoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingBig5)];
return data;
}