GB 2312-80 是中國國家標準簡體中文字符集,全稱《信息交換用漢字編碼字符集·基本集》,由中國國家標準總局發布,1981年5月1日實施。 GB2312 編碼通行於中國大陸;新加坡等地也採用此編碼。中國大陸幾乎所有的中文系統和國際化的軟體都支援 GB 2312。
GB2312 標準共收錄6763 個漢字,其中一級漢字3755 個,二級漢字3008 個;同時收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內的682 個字元。 GB2312 的出現,基本上滿足了漢字的電腦處理需要,它所收錄的漢字已經覆蓋中國大陸 99.75% 的使用頻率。對於人名、古漢語等方面出現的罕用字,GB2312 不能處理,這導致了後來 GBK 及 GB18030 漢字字符集的出現。
GB2312 中對所收漢字進行了「分區」處理,每區含有 94 個漢字/符號。這種表示方式也稱為區位碼。
01 - 09 區為特殊符號。
16 - 55 區為一階漢字,依拼音排序。
56 - 87 區為二級漢字,依部首/筆畫排序。
10 - 15 區及 88 - 94 區則未有編碼。舉例來說,「啊」字是 GB2312 之中的第一個漢字,它的區碼就是 1601。
每個漢字及符號以兩個位元組來表示。第一個位元組稱為“高位元組”,第二個位元組稱為“低位元組”。 「高位元組」使用了 0xA1 - 0xF7(把 01 - 87 區的區號加上 0xA0),「低位元組」使用了 0xA1 - 0xFE(把 01 - 94 位元的位元號加上 0xA0)。 由於一級漢字從 16 區起始,漢字區的「高位元組」的範圍是 0xB0 - 0xF7,「低位元組」的範圍是 0xA1 - 0xFE,佔用的碼位元是 72 * 94 = 6768。其中有 5 個空位是 D7FA - D7FE。例如「啊」字在大多數程式中,會以兩個位元組,0xB0(第一個位元組)0xA1(第二個位元組)儲存。 (與區位碼比較:0xB0 = 0xA0 + 16, 0xA1 = 0xA0 + 1)。
國家標準GB 18030-2005《資訊科技中文編碼字元集》,是中華人民共和國現時最新的內碼字集,與GB 2312-1980 完全相容,與GBK 基本相容,支援GB 13000 及Unicode 的全部統一漢字,共收錄漢字70244 個。現行版本為國家品質監督檢驗總局和中國國家標準化管理委員會於2005年11月8日發布,2006年5月1日實施,為在中國境內所有軟體產品支援的強制標準。
function getChar($num) // $num为生成汉字的数量 { $b = ''; for ($i=0; $i<$num; $i++) { // 使用chr()函数拼接双字节汉字,前一个chr()为高位字节,后一个为低位字节 $a = chr(mt_rand(0xB0,0xD0)).chr(mt_rand(0xA1, 0xF0)); // 转码 $b .= iconv('GB2312', 'UTF-8', $a); } return $b; }
相關推薦:
以上是php隨機產生漢字實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!