V vivid Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-07 #1 请指教: 我要对汉字进行排序,首先要得到一个包含全部汉字内码的汉字库。 请问怎样写一段能生成全部汉字内码的程序(一个汉字一行)
C creation-zy Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-12 #5 GB 2312-80 规定,“对任意一个图形字符都采用两个字节(Byte)表示。每个字节均采用 GB 1988-80 及 GB 2311-80 中的七位编码表示。两个字节中前面的字节为第一字节,后面的字节为第二字节。” 习惯上称第一字节为“高字节”,第二字节为“低字节”。 GB 2312-80 将代码表分为 94 个区(Section),对应第一字节;每个区 94 个位(Position), 对应第二字节。两个字节的值,分别为区号值和位号值各加 32(20H)。 GB 2312-80 规定,01~09 区(原规定为 1~9 区,为表示区位码方便起见,今改称 01~09 区) 为符号、数字区,16~87 区为汉字区。而 10~15 区、88~94 区是有待于“进一步标准化”的“空白 位置”区域。但第 10 区推荐与第 3 区的 94 个图形字符(即 GB 1988-80 中的 94 个图形字符)相同, 字形宽度为其宽度的一半。 详见: http://www.haiyan.com/steelk/navigator/ref/gb2312/gbindex.htm >>要收回分数怎么办 除了要版主帮忙回收,没有别的办法。
GB 2312-80 规定,“对任意一个图形字符都采用两个字节(Byte)表示。每个字节均采用 GB 1988-80 及 GB 2311-80 中的七位编码表示。两个字节中前面的字节为第一字节,后面的字节为第二字节。” 习惯上称第一字节为“高字节”,第二字节为“低字节”。 GB 2312-80 将代码表分为 94 个区(Section),对应第一字节;每个区 94 个位(Position), 对应第二字节。两个字节的值,分别为区号值和位号值各加 32(20H)。 GB 2312-80 规定,01~09 区(原规定为 1~9 区,为表示区位码方便起见,今改称 01~09 区) 为符号、数字区,16~87 区为汉字区。而 10~15 区、88~94 区是有待于“进一步标准化”的“空白 位置”区域。但第 10 区推荐与第 3 区的 94 个图形字符(即 GB 1988-80 中的 94 个图形字符)相同, 字形宽度为其宽度的一半。 详见: http://www.haiyan.com/steelk/navigator/ref/gb2312/gbindex.htm >>要收回分数怎么办 除了要版主帮忙回收,没有别的办法。
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-12 #6 GB2312-80 《信息交换用汉字编码字符集》基本集规定一个汉字的内码由两个字节组成。 汉字内码与区位码之间的关系是: 内码第一字节=区码+160 内码第二字节=位码+160 在区位码中,01-09区为特殊字符,10-55区为一级汉字(3755个最常用的汉字,按拼音字母 的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)。 每个区有94个汉字 所以,您的问题可以这样 1、程序 program gb2312; {$APPTYPE CONSOLE} var ii, jj: integer; begin for ii:=10 to 87 do for jj:=1 to 94 do writeln(chr(ii+160)+chr(jj+160)); end. 2、运行 gb2312 > aaa.txt aaa.txt 就是您要的一个汉字一行汉字库。
GB2312-80 《信息交换用汉字编码字符集》基本集规定一个汉字的内码由两个字节组成。 汉字内码与区位码之间的关系是: 内码第一字节=区码+160 内码第二字节=位码+160 在区位码中,01-09区为特殊字符,10-55区为一级汉字(3755个最常用的汉字,按拼音字母 的次序排列),56-87区为二级汉字(3008个汉字,按部首次序排列)。 每个区有94个汉字 所以,您的问题可以这样 1、程序 program gb2312; {$APPTYPE CONSOLE} var ii, jj: integer; begin for ii:=10 to 87 do for jj:=1 to 94 do writeln(chr(ii+160)+chr(jj+160)); end. 2、运行 gb2312 > aaa.txt aaa.txt 就是您要的一个汉字一行汉字库。
V vivid Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-13 #7 谢谢两位大侠的提示! yysun的答案是可行的。 to creation-zy: 两个字节的值,分别为区号值和位号值各加 32(20H)。 第一字节=区码+32 第二字节=位码+32 读出来的是一些字符,怎么读出汉字?
谢谢两位大侠的提示! yysun的答案是可行的。 to creation-zy: 两个字节的值,分别为区号值和位号值各加 32(20H)。 第一字节=区码+32 第二字节=位码+32 读出来的是一些字符,怎么读出汉字?
C creation-zy Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-14 #8 GB码的编码范围为2121H~777EH,与 ASCII 码有重叠,通行将GB码两个字节的最高位均置1(MSB=1), 以示区别。因此,实际应用的GB码是GB码高位置1后的变形码,编码范围为 0A1A1H~0F7FEH。 与前面所述“两个字节的值,分别为区号值和位号值各加 32(20H)”就成了孙老师所说的: “内码第一字节=区码+160,内码第二字节=位码+160” —— 128 + 32 = 160 我记得以前在资料上看到过: GB码的取值范围是: 第一字节:0xA0-0xFE 第二字节:0x40-0xFE ~~~~~ 小于160!? 下面是一些第二字节小于160的例子: (由于我使用的是英文操作系统,粘贴这些汉字有问题,现仅贴出HEX,见谅!) B388 F341 E39F
GB码的编码范围为2121H~777EH,与 ASCII 码有重叠,通行将GB码两个字节的最高位均置1(MSB=1), 以示区别。因此,实际应用的GB码是GB码高位置1后的变形码,编码范围为 0A1A1H~0F7FEH。 与前面所述“两个字节的值,分别为区号值和位号值各加 32(20H)”就成了孙老师所说的: “内码第一字节=区码+160,内码第二字节=位码+160” —— 128 + 32 = 160 我记得以前在资料上看到过: GB码的取值范围是: 第一字节:0xA0-0xFE 第二字节:0x40-0xFE ~~~~~ 小于160!? 下面是一些第二字节小于160的例子: (由于我使用的是英文操作系统,粘贴这些汉字有问题,现仅贴出HEX,见谅!) B388 F341 E39F
Y yysun Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-14 #9 creation-zy: GB2312-80的编码第一子节不会小于160的 GB2312收录7445个图形字符,汉字占6763个。 0x40 是 BIG5 和 GBK 里的东西,不是 GB2312的。 网上随便找找就会知道:例如这个 http://www.unihan.com.cn/digital/wangxb_ful.htm 去年又搞出个 Gb18030-2000 收录 27000多个汉字。
creation-zy: GB2312-80的编码第一子节不会小于160的 GB2312收录7445个图形字符,汉字占6763个。 0x40 是 BIG5 和 GBK 里的东西,不是 GB2312的。 网上随便找找就会知道:例如这个 http://www.unihan.com.cn/digital/wangxb_ful.htm 去年又搞出个 Gb18030-2000 收录 27000多个汉字。