`

Unicode汉字内码表2

阅读更多

BBS水木清华站∶精华区

发信人: intranetworm (小虫), 信区: Java 
标  题: Unicode 汉字与GB内码的转换 
发信站: BBS 水木清华站 (Wed Aug 27 13:44:45 1997) 
 
这是我编的一个转换程序,使用时现将前面的码表存成文件,例如table.txt 
创建一个GBUnicode实例,new GBUnicode("table.txt") 
以后调用GB2Uni和Uni2GB作内码转换.注意GB内码是用两个字节表示的. 
 
import java.io.*; 
import java.util.Hashtable; 
 
class GBUnicode{ 
        byte high[]=new byte[6763],low[]=new byte[6763]; 
        char unichar[]=new char[6763]; 
        Hashtable UniGB; 
 
        public GBUnicode(String table_file)throws IOException 
        { 
                //BufferedInputStream tables=new BufferedInputStream (new FileInputStream(table_file)); 
                DataInputStream tables=new DataInputStream (new FileInputStream(table_file)); 
                int i,n=0; 
                byte b,bl,bh,num[]=new byte[20]; 
 
                UniGB=new Hashtable(7000,1); 
                while (n<6763 ){ 
                        do{ 
                                bh=(byte)tables.read(); 
                        }while ((char)bh<=' '); //find first non-blank char 
                        bl=(byte)tables.read(); 
                        high[n]=bh; 
                        low[n]=bl; 
                        do{ 
                                b=(byte)tables.read(); 
                        }while (b!=(byte)':'); //find ':' 
                        do{ 
                                b=(byte)tables.read(); 
                        }while ((char)b<=' '); //find next non-blank char to read as number 
                        i=0; 
                        while ((char)b>='0' && (char)b<='9'){ 
                                num[i++]=b; 
                                b=(byte)tables.read(); 
                        } 
                        unichar[n]=(char)Integer.parseInt(new String(num,0,0,i)); 
                        if (UniGB.get(new Character(unichar[n]))!= null) 
                                System.out.println("Duplicated : "+unichar[n]); 
                        UniGB.put(new Character(unichar[n]),new Integer(n)); 
                        n=n+1; 
                } 
                tables.close(); 
        } 
 
         
        private int getGBindex(byte high,byte low){ 
                int i,j; 
                i=high-(byte)0xb0; 
                j=low-(byte)0xa1; 
                if (i <39) {// L1 Chinese 
                        if (j<0 || j>94) 
                                return -1; 
                        return (i*94+j); 
                } 
                else if (i==39) {//one of the last 89 L1 Chinese 
                        if (j<0 || j>89) 
                                return -1; 
                        return (i*94+j); 
                } 
                else {//L2 Chinese 
                        if (j<0 || j>94) 
                                return -1; 
                        return (i*94+j-5); 
                } 
        } 
 
        public byte[] Uni2GB(char unicode) { 
 
                Integer index=(Integer)UniGB.get(new Character(unicode)); 
                if (index==null) 
                        return null; 
                byte ch[]=new byte[2]; 
                ch[0]=high[index.intValue()]; 
                ch[1]=low[index.intValue()]; 
                return ch; 
        } 
 
        public char GB2Uni(byte high, byte low) { 
                int index=getGBindex(high,low); 
                if (index ==-1) //not GB Chinese 
                        return 0; 
                return(unichar[index]); 
        } 

 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: organ.ncic.ac.c] 

BBS水木清华站∶精华区

分享到:
评论

相关推荐

    Unicode汉字内码表

    总之,Unicode汉字内码表是中文信息化不可或缺的一部分,它不仅为计算机系统提供了处理汉字的标准方法,也为各种与中文相关的应用和服务提供了坚实的基础。通过掌握Unicode编码规则和使用方法,开发者和研究人员可以...

    通用规范汉字UNICODE码表

    UNICODE码表在计算机领域内具有举足轻重的作用,它确保了文本在不同的设备和平台上能够准确无误地显示和处理。在此,通用规范汉字指的是在汉字书写系统中广泛使用的基本汉字字符集,其中包括一级字表、二级字表和三...

    最全的常用汉字Unicode码表

    对于中文用户而言,Unicode的重要性不言而喻,它不仅确保了中文字符能在全球范围内被正确地显示和处理,还极大地促进了中文信息在互联网上的传播。 #### 常用汉字Unicode码表概述 本文提供的“最全的常用汉字...

    GBK转UNICODE函数和码表

    1. **编码转换函数**:`mb_gbk2uni.c` 和 `mb_gbk2uni.h` 文件很可能包含了实现GBK到Unicode转换的函数。在C语言中,这样的函数可能使用位操作、查表等方式实现。例如,函数可能接收GBK编码的字节流,通过解析这两个...

    常用的中文Unicode码表

    本文将深入探讨“常用的中文Unicode码表”,这对于编程、文本处理以及跨平台的软件开发尤其重要。 Unicode码表是一个庞大的集合,包含了来自不同语言的大量字符。对于中文来说,Unicode 提供了大量汉字的编码,使得...

    unicode转gbk码表

    总的来说,"unicode转gbk码表"是理解和处理多语言文本数据时的重要工具,尤其是在中文环境下,它帮助我们在不同的编码系统之间建立起桥梁,促进了信息的交流和传播。理解和运用这些编码转换方法,对于任何涉及跨平台...

    unicode汉字编码拼音对照表

    unicode汉字和拼音对照表,按照: 汉字 编码 拼音声标 拼音声调(声调在字母后)声调在拼音后 纯拼音 的格式排列。一共是20902个汉字编码范围是 U4e00 ~ U9fa5.

    汉字拼音及首字母unicode码对照库(2万多条)

    这个压缩包文件提供了超过2万条的汉字、拼音、首字母以及对应的Unicode码,这对于各种与汉字处理相关的应用开发具有极大的价值。下面我们将深入探讨这些知识点。 首先,汉字是中文的主要文字,它在计算机系统中需要...

    常用汉字的Unicode码表

    这是常用汉字的Unicode码表,和传智播客视频中的一致,谢谢大家分享

    c系列中文机汉字字库内码表

    本文将深入探讨"汉字 字库 内码表"这一主题,特别是针对"C系列中文机汉字字库内码表"的相关知识。 首先,我们要理解什么是“内码”。在计算机中,内码是字符集中的每个字符在内存中存储时所使用的二进制代码,它...

    汉字ASCII码表

    Unicode不仅能够覆盖所有汉字,还包括全球各地的其他文字,确保了信息在全球范围内的准确传递和交流。在现代信息技术领域,Unicode已经成为处理多语言文本的首选编码标准,无论是网页开发、数据库管理还是软件编程,...

    UNICODE GBK双向码表二进制文件

    GBK编码,又称为GB2312-80的扩展,是中国大陆广泛使用的汉字编码标准,它是基于ISO-8859-1(西文字符)的基础上扩展的,主要针对简体中文,包括了大部分的汉字和一些非汉字符。GBK使用2个字节来表示一个字符,最多...

    GB和UNICODE互换码表+查找函数

    2. **unicode转GBK码表.txt**:相反,这个文件提供了将Unicode编码转换为GBK编码的对应关系,每行包含一个Unicode字符及其GBK编码的两个字节。 3. **gb2unicode.txt**:这可能是用于实现GB2312到Unicode转换的源代码...

    常用汉字的unicode编码

    ### 常用汉字的Unicode编码 #### 一、引言 在计算机科学与信息技术领域,字符编码是一项至关重要的技术,它确保了不同系统间文本数据的正确传输和显示。Unicode作为国际上广泛采用的一种字符编码标准,为每种语言...

    unicode与GB18030(GB2312,GBK) 转换码表

    本主题主要关注四种常见的字符编码标准:Unicode、GB18030、GB2312以及GBK,它们在中国汉字编码领域扮演着关键角色。 首先,Unicode是一个全球通用的字符集,它为世界上几乎所有的文字系统提供了唯一的数字表示,...

    C语言GBK、Unicode与UTF8互转代码,含转码表及接口函数

    2. **Unicode**:Unicode是一种国际化的字符集,它试图为世界上所有语言的每个字符提供一个唯一的数字编码,以解决不同编码系统间的不兼容问题。Unicode分为多个版本,每个版本增加了一些新的字符。 3. **UTF-8编码...

    Unicode汉字编码对照.7z

    3. **《Unicode汉字内码表(十进制).txt》**:内码通常指的是计算机内部存储和处理字符时使用的编码,与Unicode编码有所不同。尽管Unicode是国际标准,但不同的操作系统和编程环境可能会使用不同的内码实现。此文件...

    计算机汉字内码表汉字内码表

    在实际应用中,常见的汉字内码有GBK、BIG5、Unicode等,其中Unicode是一种国际通用的字符编码标准,包括了全世界大部分语言的文字,它采用16位或32位编码,能够覆盖更广泛的字符集,包括简体和繁体汉字。 汉字内码...

    unicode码表大全

    完整的Unicode码表 包括汉字、英文、藏文、泰米尔、日韩等各国语言编码。

Global site tag (gtag.js) - Google Analytics