字碼頁架構
在 SQL Server 中,定序可控制字元字串的實體儲存。定序是指定用來代表每個字元的位元模式,以及排序與比較字串的規則。
在電腦中,字元是由不同 ON 或 OFF 的位元模式來代表。一個位元組有 8 個位元,8 個位元可以是 ON 或 OFF,形成 256 種不同的模式比對。程式若使用 1 個位元組來儲存每個字元,最多就可以呈現 256 種不同的字元,各為每個字元指派一種位元模式。兩個位元組中有 16 個位元,16 個位元可以是 ON 或 OFF,形成 65,536 種唯一的模式比對。程式若使用 2 個位元組來代表每個字元,最多就可以呈現 65,536 種字元。
單一位元組字碼頁是對應到位元組中 256 種可能位元模式的字元定義。字碼頁可定義大小寫字元、數字、符號和特殊字元 (如驚嘆號 (!)、@ 符號、井字符號 (#) 或百分比 (%)) 的位元模式。每種歐洲語系 (如德語或西班牙語) 都有它自己的單一位元組字碼頁。雖然所有字碼頁中用來代表拉丁字母字元 A 到 Z 的位元模式都一樣,但用來代表腔調字元的位元模式則會因字碼頁而異。
單一位元組的字元集無法儲存眾多語言所使用的所有字元。有些亞洲語言有數千個字元,因此每個字元必須使用兩個位元組。針對這些語言定義了雙位元組字集,同時還定義了其適用的字碼頁。
下表顯示 SQL Server 所支援的字碼頁。
字碼頁 |
描述 |
---|---|
1258 |
Vietnamese |
1257 |
波羅的語系 |
1256 |
Arabic |
1255 |
Hebrew |
1254 |
Turkish |
1253 |
Greek |
1252 |
Latin1 (ANSI) |
1251 |
古斯拉夫文 |
1250 |
中歐 |
950 |
中文 (繁體) |
949 |
韓文 |
936 |
中文 (簡體) |
932 |
日文 |
874 |
Thai |
850 |
多國語言 (MS-DOS Latin1) |
437 |
MS-DOS 美式英文 |
多種定序可以為非 Unicode 資料使用相同的字碼頁。例如,1251 字碼頁定義了一組古斯拉夫語字元。此字碼頁可供數種定序使用,例如 Cyrillic_General、Ukrainian 與 Macedonian_FYROM_90。雖然這些定序都使用相同的位元組來代表非 Unicode 字元資料,但它們所使用的排序與比較規則略有不同。如此它們才能處理語言中具有正確字元順序的字典定義,或與定序相關的字母。