GB 2312中對(duì)所收漢字進(jìn)行了“分區(qū)”處理,每區(qū)含有94個(gè)漢字/符號(hào)。這種透露表現(xiàn)體例也稱為區(qū)位碼。
1)01-09區(qū)為特殊符號(hào)。
2)16-55區(qū)為一級(jí)漢字,按拼音排序。
3)56-87區(qū)為二級(jí)漢字,按部首/筆畫排序。
4)10-15區(qū)及88-94區(qū)則未有編碼。
在使用GB2312的程序中,通常采用EUC儲(chǔ)存方法,以便兼容于ASCII。瀏覽器編碼表上的“GB2312”,通常都是指“EUC-CN”透露表現(xiàn)法。
每個(gè)漢字及符號(hào)以兩個(gè)字節(jié)來(lái)透露表現(xiàn)。個(gè)字節(jié)稱為“高位字節(jié)”(也稱“區(qū)字節(jié))”,第二個(gè)字節(jié)稱為“低位字節(jié)”(也稱“位字節(jié)”)。
“高位字節(jié)”使用了0xA1-0xF7(把01-87區(qū)的區(qū)號(hào)加上0xA0),“低位字節(jié)”使用了0xA1-0xFE(把01-94加上 0xA0)。因?yàn)橐患?jí)漢字從16區(qū)肇端,漢字區(qū)的“高位字節(jié)”的范圍是0xB0-0xF7,“低位字節(jié)”的范圍是0xA1-0xFE,占用的碼位是 72*94=6768。其中有5個(gè)空位是D7FA-D7FE。
例如“啊”字在大多數(shù)程序中,會(huì)以兩個(gè)字節(jié),0xB0(個(gè)字節(jié)) 0xA1(第二個(gè)字節(jié))儲(chǔ)存。區(qū)位碼=區(qū)字節(jié)+位字節(jié)(與區(qū)位碼對(duì)比:0xB0=0xA0+16,0xA1=0xA0+1)。
設(shè)計(jì):
用一個(gè)數(shù)組存放國(guó)標(biāo)一級(jí)漢字不同讀音的肇端區(qū)位碼 :如
static final int[] secPosValueList = {
1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472,
3635, 3722, 3730, 3858, 4027, 4086, 4390, 4558, 4684, 4925, 5249, 9999};
一個(gè)數(shù)據(jù)存放存放國(guó)標(biāo)一級(jí)漢字不同讀音的肇端區(qū)位碼對(duì)應(yīng)讀音
static final char[] firstLetter = {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
'q', 'r', 's', 't', 'w', 'x', 'y', 'z'};
處理方法:
1. 判斷是否為英文之母
2. 假如是,直接返回英文之母
3. 取字符的編碼值
4. 比較判斷其編碼值在碼表中的位置。
5. 根據(jù)位置值,返回之母表中響應(yīng)值
當(dāng)前標(biāo)題:PHP漢字轉(zhuǎn)換為拼音字頭原理
文章路徑:http://jinyejixie.com/news2/286352.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站設(shè)計(jì)公司、Google、靜態(tài)網(wǎng)站、微信小程序
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)