獲取中文串的首字母

2022-02-04 05:12:41 字數 2049 閱讀 9729

相關知識儲備

gb2312編碼範圍:a1a1 - fefe ,其中漢字編碼範圍:b0a1-f7fe.

gb2312編碼是第乙個漢字編碼國家標準,共收錄漢字6763個,其中一級漢字3755個,二級漢字3008個。同時,gb2312編碼收錄了包括拉丁字母,希臘字母,日文平假名及片假名字母、俄語西里爾字母在內的682個全形字符。

分割槽表示

gb2312 編碼對所收錄字元進行了「分割槽」處理,共94個區,每區含有94個位,共8836個碼位。這種表示方法也稱為區位碼。

01-09區收錄除漢字外的682個字元。

10-15區位空白區,沒有使用。

16-55區收錄了3755個一級漢字,按拼音排序。

56-87區收錄了3008個二級漢字,按部首/筆畫排序。

88-94區為空白區,沒有使用。

舉例來說,「啊」字是gb2312編碼中的第乙個漢字,它位於16區的01位,所以它的區位碼就是1601

雙位元組編碼

gb2312 規定對收錄的每個字元採用兩個位元組表示,第乙個位元組為 「高位元組」,對應94個區;第二個位元組為「低位元組」,對應94個位。所以它的區位碼範圍是:0101-9494。 區號和位號分別加上0xa0 就是gb2312編碼。

例如最後乙個碼位是9494,區號和位號分別轉換成十六進製制是5e5e,0x5e+0xa0=0xfe,所以該碼位的gb2312編碼是fefe。

gb2312編碼範圍:a1a1-fefe,其中漢字的編碼範圍為b0a1-f7fe,第一位元組0xb0-0xf7(對應區號:16-87),第二個位元組0xa1-0xfe(對應位號:01-94)。

相關計算

區位碼、國標碼與機內碼的轉換關係方法:

(1)區位碼先轉換成十六進製制數表示

(2)區位碼的十六進製制表示)+2020h=國標碼;

(3)國標碼+8080h=機內碼

舉例:以漢字「大」為例,「大」字的區內碼為2083

1、區號為20,位號為83

2、將區位號2083轉換為十六進製制表示為1453h

3、1453h+2020h=3473h,得到國標碼3473h

4、3473h+8080h=b4f3h,得到機內碼為b4f3h

php**實現

<?php 

//國標碼與區位碼轉換常量

$gb_sp_diff = 160;

//存放國標一級漢字不同讀音的起始 區位碼

$secposvaluelist = array(1601, 1637, 1833, 2078,2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086, 4390, 4558, 4684, 4925, 5249, 5600);

//存放國標一級漢字不同讀音的起始區位碼對應讀音

$firstletter = array('a', 'b', 'c', 'd', 'e', 'f','g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'w', 'x', 'y', 'z');

echo

$string.'

';

$string=iconv( "utf-8", "gb2312//ignore" , $string

);

$result = array

();

//十進位制

for($i=0;$i

} //將區位碼轉對應的讀音

$str='';

for($i=0;$i

echo '首字母:'.$str

;

//二分查詢

function getletter($arr,$val,$hight,$low

)elseif($arr[$mid] > $val

)else

}return -1;

}?>

執行結果:

怎樣獲取中文字串的首字母?

public classchineseletter 存放國標一級漢字不同讀音的起始區位碼對應讀音 private static final charfirstletter 獲取乙個字串的拼音碼 public staticstring getfirstletter string oristr byte...

ORACLE獲取中文字串拼音首字母

oracle漢字轉拼音 獲得全拼 拼音首字母 拼音擷取等 效果如下 oracle 字符集 gbk 沒有問題 utf 8 需要修改一下 sql oracle漢字轉拼音 package 1.獲得全拼 www.2cto.com select gethzpy.gethzfullpy 漢字 from dual...

asp獲取中文首字母

asp獲取中文字串拼音首字母串 str 呼叫演示 中文字串 的拼音首字母串abc123是 response.write str response.write getpy str 獲取中文字串拼音首字母串的函式 function getpy str for i 1 to len str getpy g...