vfp生成GBK中的所有漢字

2021-06-16 01:35:55 字數 2664 閱讀 5368

*!*

二、碼位分配及順序

*!*gbk 亦採用雙位元組表示,總體編碼範圍為8140-fefe,首位元組在81-fe 之間,尾位元組在40-fe 之間,剔除xx7f 一條線。總計23940 個碼位,共收入21886 個漢字和圖形符號,其中漢字(包括部首和構件)21003 個,圖形符號883 個。

*!*全部編碼分為三大部分:

*!*1. 漢字區。包括:

*!*a. gb 2312 漢字區。即gbk/2: b0a1-f7fe。收錄gb 2312 漢字6763 個,按原順序排列。

*!*b. gb 13000.1 擴充漢字區。包括:

*!*(1) gbk/3: 8140-a0fe。收錄gb 13000.1 中的cjk 漢字6080 個。

*!*(2) gbk/4: aa40-fea0。收錄cjk 漢字和增補的漢字8160 個。cjk 漢字在前,按ucs **大小排列;增補的漢字(包括部首和構件)在後,按《康熙字典》的頁碼/字位排列。

*!*2. 圖形符號區。包括:

*!*a. gb 2312 非漢字符號區。即gbk/1: a1a1-a9fe。其中除gb 2312 的符號外,還有10 個小寫羅馬數字和gb 12345 增補的符號。計符號717 個。

*!*b. gb 13000.1 擴充非漢字區。即gbk/5: a840-a9a0。big-5 非漢字符號、結構符和「○」排列在此區。計符號166 個。

*!*3. 使用者自定義區:分為(1)(2)(3)三個小區。

*!*(1) aaa1-affe,碼位564 個。

*!*(2) f8a1-fefe,碼位658 個。

*!*(3) a140-a7a0,碼位672 個。

*!*第(3)區儘管對使用者開放,但限制使用,因為不排除未來在此區域增補新字元的可能性。

create table

gbk(

字元 c(2))

local

lcstring,x,y

*(1)

漢字21003個

*gbk/2

:oxboa1-f7fe, 收錄gb2312 漢字6763 個,按原序排列(其中有5個空位是d7fa-d7fe);

for

x = 0xb0

to 0xf7

for

y = 0xa1

to 0xfe

lcstring =

chr[x] +

chr[y]

if y <> 0x7f and not (x = 0xd7 and (y >=0xfa and y <=0xfe))

replace

字元 with

lcstring

endif

endfor

endfor

*gbk/3

:ox8140-aofe,收錄cjk 漢字6080 個;

for

x = 0x81

to 0xa0

for

y = 0x40

to 0xfe

lcstring =

chr[x] +

chr[y]

if y <> 0x7f

replace

字元 with

lcstring

endif

endfor

endfor

*gbk/4

:oxaa40-feao,收錄cjk 漢字和增補的漢字8160 個。

for

x = 0xaa

to 0xfe

for

y = 0x40

to 0xa0

lcstring =

chr[x] +

chr[y]

if y <> 0x7f

replace

字元 with

lcstring

endif

endfor

endfor

*(2)

非漢字(圖形)883個

*gbk/1

:oxa1a1-a9fe,除gb2312 的符號外,還增補了其它符號(圖形符號區)

*!*for x = 0xa1 to 0xa9

*!*for y = 0xa1 to 0xfe

*!*lcstring = chr[x] + chr[y]

*!*if y <> 0x7f

*!*replace

字元with lcstring

*!*endif

*!*endfor

*!*endfor

*gbk/5

:oxa840-a9ao,擴除非漢字區。(圖形符號區)

*!*for x = 0xa8 to 0xa9

*!*for y = 0x40 to 0xa0

*!*lcstring = chr[x] + chr[y]

*!*if y <> 0x7f

*!*replace

字元with lcstring

*!*endif

*!*endfor

*!*endfor

*!*browse

VFP中取得漢字的簡拼或全拼

parameters c,n 如果n 1 轉換為簡拼,n 2 轉換為全拼 oldgzq select 儲存當前工作區 store to cpy,zf for i 1 to len alltrim c if asc substr alltrim c i,1 128 zf substr alltrim ...

基於python的漢字轉GBK碼

基於python的漢字轉gbk碼 l cooper 說明 思路 從gbk編碼頁面收集漢字 實施 第一步 提取漢字 1 with open e gbk.txt as f 2 s f.read splitlines split 複製 分割得到的list裡面有重複的節編碼,要去掉b0 b1 類似的符號和中...

基於python的漢字轉GBK碼

說明 思路 從gbk編碼頁面收集漢字 實施 第一步 提取漢字 view code 1 with open e gbk.txt as f 2 s f.read splitlines split 分割得到的list裡面有重複的節編碼,要去掉b0 b1 類似的符號和中文的0 9 a f字元 把獲取到的字元...