网络查询四字节字符的方法及系统的制作方法

文档序号:6518261阅读:502来源:国知局
专利名称:网络查询四字节字符的方法及系统的制作方法
技术领域
本发明属于计算机网络技术领域,具体涉及一种网络查询四字节文字的方法及系统。
背景技术
Unicode的学名是″Universal Multiple-Octet Coded Character Set″,简称为UCS。UCS规定了怎么用多个字节表示各种文字。怎样传输这些编码,是由UTF(UCSTransformation Format)规范规定的,常见的UTF规范包括UTF-8、UTF-7、UTF-16。
UCS有两种格式UCS-2和UCS-4。顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上只用了31位,最高位必须为0)编码。
目前的网络搜索引擎,如Google,其采用UCS-2格式,遵循UTF-8存储传输这些编码,只处理双字节字符的检索,对于符合Unicode标准的所有四字节内容无法进行查询。

发明内容
本发明针对目前网络检索引擎对于四字节字符无法处理的不足,提供一种网络查询四字节字符的方法及系统。
发明的技术内容一种网络查询四字节字符的方法,(1)用户输入查询字符,用户界面模块采用用户定义编码定义查询字符,使得用户输入的包含四字节的内容能够正常显示;(2)将用户定义编码表达的查询字串转为Unicode编码后传给查询引擎,查询引擎返回查询结果,该查询结果以Unicode编码定义;(3)将查询结果的Unicode编码转为用户定义编码传给用户界面模块,使得用户正常地看到包含四字节字符的查询结果。
对用户界面模块传输来的以及查询引擎模块返回结果数据中的四字节字符统一采用Unicode编码代理对格式。也即用一对UTF-16表达一个四字节内容,该UTF-16是特意保留给代理对使用的,它的取值范围与单个UTF-16表达UCS-2不同,一旦出现在某个值范围之内,则就应该和接下来的另一个UTF-16联合起来表达一个四字节字符(UCS-4),而处于其它取值范围的UTF-16则表达正常双字节字符(UCS-2)。
对用户界面模块传输来的以及查询引擎模块返回结果数据中的四字节字符可统一采用UTF-32。
对用户界面模块传输来的简体汉字,首先进行检查是否有对应的繁体汉字或异体字,如果有,则该次查询表达为查找包含该简体汉字、繁体汉字或者异体字的内容,扩大返回给用户的搜索结果内容,使之更能满足用户的需求。
一种网络查询四字节字符的系统,包括用户界面模块和查询引擎,用户界面模块和查询引擎之间链接一控制模块,用户界面模块采用用户定义编码,控制模块把用户输入的以用户定义编码定义的查询字串转为Unicode编码后传给查询引擎,而后又把查询引擎返回的查询结果的Unicode编码转为用户定义编码传给用户界面模块,使得用户正常地看到包含四字节字符的内容。
该控制模块进一步增加一异体字表,对于用户输入的汉字,逐字进行异体字检查,如果有,则该次查询表达为查找包含该汉字或者它的异体字的记录,扩大返回给用户的搜索结果内容,使之更能满足用户的需求。
该控制模块对查询引擎模块返回结果中查询字符进行加亮。
查询引擎包括自然语言处理模块,用于进行词法分析;建立索引模块,用于根据查询字串建立索引;查询引擎模块,用于查询四字节索引库,并传递查询结果。
本发明的优点与技术效果本发明解决了目前在互联网上无法利用IE等通用的浏览器正常浏览、检索和显示带有四个字节生僻汉字中文文本的技术难题。利用本发明,不仅可以实现带有生僻汉字的电子文本内容的正常浏览、检索和显示,同时用户可以和使用常用汉字的中文网站一样对含有生僻汉字的文本内容自由地复制、再利用,使得大量的四字节的中文文本内容得以同二字节常用汉字一样在计算机和网络世界中被人们所便捷使用,对中国古籍的电子化和中华古文化的网络传播具有巨大的意义。


图1为本发明网络查询四字节字符系统的结构示意图;图2为本发明网络查询四字节字符方法的流程框图具体实施方式
一、Unicode编码与用户定义编码之间的转换UCS-2有2^16=65536个码位,UCS-4有2^31=2147483648个码位。
UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个plane。每个plane根据第3个字节分为256行(rows),每行包含256个cells。
Group 0的plane 0被称作Basic Multilingual Plane,即BMP。或者说UCS-4中,高两个字节为0的码位被称作BMP。它能表达的编码范围是U+0000 through U+FFFF.
Group 0的plane 1到16称为Supplementary Plane,它能表达的编码范围是U+10000through U+10FFFF.
UTF-8就是以8位为单元对UCS进行编码。
从UCS-2到UTF-8的编码方式如下

例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是0110 110001 001001,用这个比特流依次代替模板中的x,得到11100110 10110001 10001001,即E6 B1 89。
UTF-16以16位为单元对UCS进行编码。对于小于0x10000的UCS码,UTF-16编码就等于UCS码对应的16位无符号整数。
而对于0x10000到0x10FFFF的UCS-4码可以采用两种方式进行编码。一种是用UTF-32,直接用32位即UTF-32表示,另一种是用代理对表达,即用一对UTF-16表达一个UCS-4字符(四字节字符),该代理对前一个UTF-16命名为高代理,后一个UTF-16命名为低代理。该代理UTF-16的取值范围与以一个UTF-16表达一个UCS-2字符的不同,它的编码取值范围是,编码范围U+D800到U+DBFF保留给高位代理,编码范围U+DC00倒U+DFFF保留为低位代理。
采用代理对形式表达UCS-4四字节字符,所占空间远远少于用UTF-32表达所占空间。
这样在0x10000到0x10FFFF的UCS-4码都可以表示为一对UTF-16代理对,前一个为高代理UTF-16,紧接着为低代理UTF-16。比如四字节字符“影”,它的UCS-4码是0x224A0,对应的代理对是D8 49,DC A0。
0x10000到0x10FFFF的UCS-4码和UTF-16代理对有一个转换规则.对于UCS-4编码,它的二进制值为000uuuuu xxxxxxxx xxxxxxxx,那么它的二进制UTF-16代理对值为110110ww wwxxxxxx 110111xx xxxxxxxx,其中wwww=uuuuu-1。比如UCS-4字符“影”,它的UCS-4码是0x224AO,它的二进制值为10 00100100 10100000,它对应的代理对的二进制值是11011000 01001001 11011100 10100000,十六进制值为是D8 49,DC AO。
字符的用户定义编码格式显示为字符串“&#xxxxx“,x从0到9,它的编码值为该字符串表达的内码值。
Unicode编码与用户定义编码之间的转换规则为对于UCS-2表达的字符,直接计算出它对应编码的十进制值,然后把该十进制值转为字符串,再在该字符串前加上字符&#,UCS-2表达的字符就变成这种形式的字符串,它用户定义编码就对应于该字符串的编码。比如“中”,它的ucs-2编码为0x4e2d,它的用户定义编码就表示为一串字符串“&#20013”。
而对于代理对形式表达的UCS-4字符(四字节字符),则先转换成UTF-32格式,然后计算它的十进制值,再把该十进制值转为字符串,而后在该字符串前加上字符&#,代理形式表达的UCS-4字符就变成了这种形式的字符串,它的用户定义编码就是该字符串的编码,比如“影”,它的代理对是D8 49,DC AO(十六进制),它的UTF-32编码是0x224AO,则对应的用户定义编码就是&#140448。
如查询返回的结果中包括以UTF-16表达的UCS-2字符以及代理对表达的UCS-4编码方式存储的字符串,则把该字符串分别根据以上的规则转换成用户定义的编码,比如字符串“中影”,转成用户定义编码后就成为“&#20013&#140448”。
二、本发明网络查询四字节字符的方法,包括两次Unicode编码与用户定义编码之间的转换,具体步骤为1)用户输入查询字符,输入对话框的字体可采用“方正超大字符集”,比如(写成<inputtype=text name=input style=”font-family方正超大字符集”),该字符集中包括四字节字符;为了达到显示四字节字符的功能,必须采用用户定义编码;Web页面的字符集设定为x-user-defined。可以在Web页面的源文档中设置字符集为″x-user-defined″(比如可以在Html文件的<head>中加上<meta http-equiv=″Content-Type″content=″text/html;charset=x-user-defined″>,或者在Html文件的最后加上javascript脚本<scriptlanguage=”javascript”>document.charset=”x-user-defined”;</script>)。如果源文档没有指定字符集为x-user-defined,那么用户必须手动指定编码为用户定义编码(在“view”菜单中选择“Encoding”中的User-defined)。
2)将用户定义编码表达的查询字串转为Unicode编码后传给查询引擎;查询引擎在预先建立好的四字节索引库上进行查询,有关查询的技术已由本发明人申请了专利,该专利的申请号为200510011824.X。查询引擎返回以Unicode编码表达的查询结果。
3)将查询结果的Unicode编码转换为用户定义编码传给用户界面模块,使得用户正常地看到包含四字节字符的内容。
本发明四字节检索系统包括如下模块1、自然语言处理模块A,用来进行词法的分析;2、建立索引模块B,根据模块A提供的词法分析实现建立索引的功能;取得需要建立索引的包含四字节文字的内容后,用模块B建立索引;3、查询引擎模块C,提供查询四字节索引库的功能;4、控制模块D,控制用户界面模块E与查询引擎的交互,5、用户界面模块E,显示包含四字节字符的内容。
该系统的查询流程1、用户界面模块E收集用户输入的查询字串,传递给控制模块D2、控制模块D对查询字串进行繁体字异体字转换,汉字有简体和繁体之分,生成包含简体和繁体的新查询字串,如简体“马”,繁体为“馬”;用户输入的字串“马”,经过繁体转换后就成为“马OR馬”,有些汉字有异体字,通过增加异体汉字表提供异体字转换功能。如“年”,它的异体字“秊”。用户输入“年”,经过异体字转换后成为“年OR秊”。在查找简体汉字的同时也查找它对应的繁体汉字和异体汉字的内容(如果存在),然后调用自然语言处理模块处理这些查询字串,形成词组表和查询表达式;可以大大扩大用户返回给用户的信息量,更好地满足用户的需求。
3、控制模块D把查询表达式传递给查询引擎模块C;4、查询引擎模块C在预先建立好的四字节索引库上进行查询,形成查询结果返回给控制模块D;5、控制模块D根据需要的页数及每页显示的记录数,在查询引擎形成的查询结果上取出对应的四字节字符内容;6、控制模块D根据步骤2形成的词组表,加亮显示词组表中存在的四字节字符内容;提供用户结果内容中查询字串的加亮功能。对于返回给用户的记录内容,把其中出现在用户输入的查询子串中的汉字以区别于其它汉字的格式,包含加亮用户输入的查询字串中的汉字的繁体和异体字,使得用户可以一目了然地发现他需要的内容。
7、控制模块D把UCS-2编码内容以及四字节内容转换成用户定义编码格式返回给用户界面模块;把记录内容从UCS-2编码或者四字节编码,转成用户定义编码,保证用户反馈界面可以正常显示。
8、用户界面模块接收到四字节字符内容后,采用用户定义编码格式显示给用户。使用户如常用汉字的中文网站一样对含有生僻汉字的文本内容自由地复制、再利用。
权利要求
1.一种网络查询四字节字符的方法,用户输入查询字符,用户界面模块采用用户定义编码定义查询字符,使得用户输入的包含四字节的内容能够正常显示;将用户定义编码表达的查询字串转为Unicode编码后传给查询引擎,查询引擎返回查询结果,该查询结果以Unicode编码定义;将查询结果的Unicode编码转为用户定义编码传给用户界面模块,使得用户正常地看到包含四字节字符的查询结果。
2.如权利要求1所述的网络查询四字节字符的方法,其特征在于对用户界面模块传输来的以及查询引擎模块返回结果数据中的四字节字符统一采用Unicode编码代理对格式,即用两个保留的UTF-16表示一个四字节字符。
3.如权利要求1所述的网络查询四字节字符的方法,其特征在于对用户界面模块传输来的以及查询引擎模块返回结果数据中的四字节字符统一采用UTF-32。
4.如权利要求1、2或3所述的网络查询四字节字符的方法,其特征在于对用户界面模块传输来的简体汉字,首先进行检查是否有对应的繁体汉字或异体汉字,如果有,则该次查询表达为查找包含该简体汉字、繁体汉字或者异体汉字的内容,可扩大返回给用户的查询结果,使之更能满足用户的需求。
5.一种网络查询四字节字符的系统,包括用户界面模块和查询引擎,用户界面模块和查询引擎之间链接一控制模块,用户界面模块采用用户定义编码,控制模块把用户输入的以用户定义编码定义的查询字串转为Unicode编码后传给查询引擎,而后又把查询引擎返回的查询结果的Unicode编码转为用户定义编码传给用户界面模块,使得用户正常地看到包含四字节字符的内容。
6.如权利要求5所述的网络查询四字节字符的系统,其特征在于该控制模块包括一异体字表,对于用户输入的汉字,逐字进行异体字检查,如果有,则该次查询表达为查找包含该汉字或者它的异体字的记录,扩大返回给用户的搜索结果内容,使之更能满足用户的需求。
7.如权利要求5或6所述的网络查询四字节字符的系统,其特征在于该控制模块对查询引擎模块返回结果中查询字符进行加亮。
8.如权利要求5所述的网络查询四字节字符的系统,其特征在于查询引擎包括自然语言处理模块,用于进行词法分析;建立索引模块,用于根据查询字串建立索引;查询引擎模块,用于查询四字节索引库,并传递查询结果。
全文摘要
本发明提供一种网络查询四字节文字的方法及系统,属于计算机通信网络技术领域。该方法包括用户输入查询字符,用户界面模块采用用户定义编码定义查询字符,使得用户输入的包含四字节的内容能够正常显示;控制模块将用户定义编码表达的查询字串转为Unicode编码后传给查询引擎,查询引擎返回查询结果,该查询结果以Unicode编码定义,同时,控制模块再将查询结果的Unicode编码转为用户定义编码传给用户界面模块,使得用户正常地看到包含四字节字符的查询结果。本发明解决了目前在互联网上无法利用通用的浏览器正常浏览、检索和显示带有四个字节字符文本的难题,使得四字节字符文本内容得以同二字节字符文本一样在网络世界中被人们便捷使用。
文档编号G06F17/30GK1719440SQ200510012218
公开日2006年1月11日 申请日期2005年7月18日 优先权日2005年7月18日
发明者林松祥, 赵锋, 王宏源 申请人:王宏源
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1