專利名稱:網(wǎng)絡(luò)查詢四字節(jié)字符的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種網(wǎng)絡(luò)查詢四字節(jié)文字的方法及系統(tǒng)。
背景技術(shù):
Unicode的學(xué)名是″Universal Multiple-Octet Coded Character Set″,簡稱為UCS。UCS規(guī)定了怎么用多個字節(jié)表示各種文字。怎樣傳輸這些編碼,是由UTF(UCSTransformation Format)規(guī)范規(guī)定的,常見的UTF規(guī)范包括UTF-8、UTF-7、UTF-16。
UCS有兩種格式UCS-2和UCS-4。顧名思義,UCS-2就是用兩個字節(jié)編碼,UCS-4就是用4個字節(jié)(實際上只用了31位,最高位必須為0)編碼。
目前的網(wǎng)絡(luò)搜索引擎,如Google,其采用UCS-2格式,遵循UTF-8存儲傳輸這些編碼,只處理雙字節(jié)字符的檢索,對于符合Unicode標(biāo)準(zhǔn)的所有四字節(jié)內(nèi)容無法進(jìn)行查詢。
發(fā)明內(nèi)容
本發(fā)明針對目前網(wǎng)絡(luò)檢索引擎對于四字節(jié)字符無法處理的不足,提供一種網(wǎng)絡(luò)查詢四字節(jié)字符的方法及系統(tǒng)。
發(fā)明的技術(shù)內(nèi)容一種網(wǎng)絡(luò)查詢四字節(jié)字符的方法,(1)用戶輸入查詢字符,用戶界面模塊采用用戶定義編碼定義查詢字符,使得用戶輸入的包含四字節(jié)的內(nèi)容能夠正常顯示;(2)將用戶定義編碼表達(dá)的查詢字串轉(zhuǎn)為Unicode編碼后傳給查詢引擎,查詢引擎返回查詢結(jié)果,該查詢結(jié)果以Unicode編碼定義;(3)將查詢結(jié)果的Unicode編碼轉(zhuǎn)為用戶定義編碼傳給用戶界面模塊,使得用戶正常地看到包含四字節(jié)字符的查詢結(jié)果。
對用戶界面模塊傳輸來的以及查詢引擎模塊返回結(jié)果數(shù)據(jù)中的四字節(jié)字符統(tǒng)一采用Unicode編碼代理對格式。也即用一對UTF-16表達(dá)一個四字節(jié)內(nèi)容,該UTF-16是特意保留給代理對使用的,它的取值范圍與單個UTF-16表達(dá)UCS-2不同,一旦出現(xiàn)在某個值范圍之內(nèi),則就應(yīng)該和接下來的另一個UTF-16聯(lián)合起來表達(dá)一個四字節(jié)字符(UCS-4),而處于其它取值范圍的UTF-16則表達(dá)正常雙字節(jié)字符(UCS-2)。
對用戶界面模塊傳輸來的以及查詢引擎模塊返回結(jié)果數(shù)據(jù)中的四字節(jié)字符可統(tǒng)一采用UTF-32。
對用戶界面模塊傳輸來的簡體漢字,首先進(jìn)行檢查是否有對應(yīng)的繁體漢字或異體字,如果有,則該次查詢表達(dá)為查找包含該簡體漢字、繁體漢字或者異體字的內(nèi)容,擴(kuò)大返回給用戶的搜索結(jié)果內(nèi)容,使之更能滿足用戶的需求。
一種網(wǎng)絡(luò)查詢四字節(jié)字符的系統(tǒng),包括用戶界面模塊和查詢引擎,用戶界面模塊和查詢引擎之間鏈接一控制模塊,用戶界面模塊采用用戶定義編碼,控制模塊把用戶輸入的以用戶定義編碼定義的查詢字串轉(zhuǎn)為Unicode編碼后傳給查詢引擎,而后又把查詢引擎返回的查詢結(jié)果的Unicode編碼轉(zhuǎn)為用戶定義編碼傳給用戶界面模塊,使得用戶正常地看到包含四字節(jié)字符的內(nèi)容。
該控制模塊進(jìn)一步增加一異體字表,對于用戶輸入的漢字,逐字進(jìn)行異體字檢查,如果有,則該次查詢表達(dá)為查找包含該漢字或者它的異體字的記錄,擴(kuò)大返回給用戶的搜索結(jié)果內(nèi)容,使之更能滿足用戶的需求。
該控制模塊對查詢引擎模塊返回結(jié)果中查詢字符進(jìn)行加亮。
查詢引擎包括自然語言處理模塊,用于進(jìn)行詞法分析;建立索引模塊,用于根據(jù)查詢字串建立索引;查詢引擎模塊,用于查詢四字節(jié)索引庫,并傳遞查詢結(jié)果。
本發(fā)明的優(yōu)點與技術(shù)效果本發(fā)明解決了目前在互聯(lián)網(wǎng)上無法利用IE等通用的瀏覽器正常瀏覽、檢索和顯示帶有四個字節(jié)生僻漢字中文文本的技術(shù)難題。利用本發(fā)明,不僅可以實現(xiàn)帶有生僻漢字的電子文本內(nèi)容的正常瀏覽、檢索和顯示,同時用戶可以和使用常用漢字的中文網(wǎng)站一樣對含有生僻漢字的文本內(nèi)容自由地復(fù)制、再利用,使得大量的四字節(jié)的中文文本內(nèi)容得以同二字節(jié)常用漢字一樣在計算機和網(wǎng)絡(luò)世界中被人們所便捷使用,對中國古籍的電子化和中華古文化的網(wǎng)絡(luò)傳播具有巨大的意義。
圖1為本發(fā)明網(wǎng)絡(luò)查詢四字節(jié)字符系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明網(wǎng)絡(luò)查詢四字節(jié)字符方法的流程框圖具體實施方式
一、Unicode編碼與用戶定義編碼之間的轉(zhuǎn)換UCS-2有2^16=65536個碼位,UCS-4有2^31=2147483648個碼位。
UCS-4根據(jù)最高位為0的最高字節(jié)分成2^7=128個group。每個group再根據(jù)次高字節(jié)分為256個plane。每個plane根據(jù)第3個字節(jié)分為256行(rows),每行包含256個cells。
Group 0的plane 0被稱作Basic Multilingual Plane,即BMP?;蛘哒fUCS-4中,高兩個字節(jié)為0的碼位被稱作BMP。它能表達(dá)的編碼范圍是U+0000 through U+FFFF.
Group 0的plane 1到16稱為Supplementary Plane,它能表達(dá)的編碼范圍是U+10000through U+10FFFF.
UTF-8就是以8位為單元對UCS進(jìn)行編碼。
從UCS-2到UTF-8的編碼方式如下
例如“漢”字的Unicode編碼是6C49。6C49在0800-FFFF之間,所以肯定要用3字節(jié)模板了1110xxxx 10xxxxxx 10xxxxxx。將6C49寫成二進(jìn)制是0110 110001 001001,用這個比特流依次代替模板中的x,得到11100110 10110001 10001001,即E6 B1 89。
UTF-16以16位為單元對UCS進(jìn)行編碼。對于小于0x10000的UCS碼,UTF-16編碼就等于UCS碼對應(yīng)的16位無符號整數(shù)。
而對于0x10000到0x10FFFF的UCS-4碼可以采用兩種方式進(jìn)行編碼。一種是用UTF-32,直接用32位即UTF-32表示,另一種是用代理對表達(dá),即用一對UTF-16表達(dá)一個UCS-4字符(四字節(jié)字符),該代理對前一個UTF-16命名為高代理,后一個UTF-16命名為低代理。該代理UTF-16的取值范圍與以一個UTF-16表達(dá)一個UCS-2字符的不同,它的編碼取值范圍是,編碼范圍U+D800到U+DBFF保留給高位代理,編碼范圍U+DC00倒U+DFFF保留為低位代理。
采用代理對形式表達(dá)UCS-4四字節(jié)字符,所占空間遠(yuǎn)遠(yuǎn)少于用UTF-32表達(dá)所占空間。
這樣在0x10000到0x10FFFF的UCS-4碼都可以表示為一對UTF-16代理對,前一個為高代理UTF-16,緊接著為低代理UTF-16。比如四字節(jié)字符“影”,它的UCS-4碼是0x224A0,對應(yīng)的代理對是D8 49,DC A0。
0x10000到0x10FFFF的UCS-4碼和UTF-16代理對有一個轉(zhuǎn)換規(guī)則.對于UCS-4編碼,它的二進(jìn)制值為000uuuuu xxxxxxxx xxxxxxxx,那么它的二進(jìn)制UTF-16代理對值為110110ww wwxxxxxx 110111xx xxxxxxxx,其中wwww=uuuuu-1。比如UCS-4字符“影”,它的UCS-4碼是0x224AO,它的二進(jìn)制值為10 00100100 10100000,它對應(yīng)的代理對的二進(jìn)制值是11011000 01001001 11011100 10100000,十六進(jìn)制值為是D8 49,DC AO。
字符的用戶定義編碼格式顯示為字符串“&#xxxxx“,x從0到9,它的編碼值為該字符串表達(dá)的內(nèi)碼值。
Unicode編碼與用戶定義編碼之間的轉(zhuǎn)換規(guī)則為對于UCS-2表達(dá)的字符,直接計算出它對應(yīng)編碼的十進(jìn)制值,然后把該十進(jìn)制值轉(zhuǎn)為字符串,再在該字符串前加上字符&#,UCS-2表達(dá)的字符就變成這種形式的字符串,它用戶定義編碼就對應(yīng)于該字符串的編碼。比如“中”,它的ucs-2編碼為0x4e2d,它的用戶定義編碼就表示為一串字符串“&#20013”。
而對于代理對形式表達(dá)的UCS-4字符(四字節(jié)字符),則先轉(zhuǎn)換成UTF-32格式,然后計算它的十進(jìn)制值,再把該十進(jìn)制值轉(zhuǎn)為字符串,而后在該字符串前加上字符&#,代理形式表達(dá)的UCS-4字符就變成了這種形式的字符串,它的用戶定義編碼就是該字符串的編碼,比如“影”,它的代理對是D8 49,DC AO(十六進(jìn)制),它的UTF-32編碼是0x224AO,則對應(yīng)的用戶定義編碼就是&#140448。
如查詢返回的結(jié)果中包括以UTF-16表達(dá)的UCS-2字符以及代理對表達(dá)的UCS-4編碼方式存儲的字符串,則把該字符串分別根據(jù)以上的規(guī)則轉(zhuǎn)換成用戶定義的編碼,比如字符串“中影”,轉(zhuǎn)成用戶定義編碼后就成為“&#20013&#140448”。
二、本發(fā)明網(wǎng)絡(luò)查詢四字節(jié)字符的方法,包括兩次Unicode編碼與用戶定義編碼之間的轉(zhuǎn)換,具體步驟為1)用戶輸入查詢字符,輸入對話框的字體可采用“方正超大字符集”,比如(寫成<inputtype=text name=input style=”font-family方正超大字符集”),該字符集中包括四字節(jié)字符;為了達(dá)到顯示四字節(jié)字符的功能,必須采用用戶定義編碼;Web頁面的字符集設(shè)定為x-user-defined??梢栽赪eb頁面的源文檔中設(shè)置字符集為″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)將用戶定義編碼表達(dá)的查詢字串轉(zhuǎn)為Unicode編碼后傳給查詢引擎;查詢引擎在預(yù)先建立好的四字節(jié)索引庫上進(jìn)行查詢,有關(guān)查詢的技術(shù)已由本發(fā)明人申請了專利,該專利的申請?zhí)枮?00510011824.X。查詢引擎返回以Unicode編碼表達(dá)的查詢結(jié)果。
3)將查詢結(jié)果的Unicode編碼轉(zhuǎn)換為用戶定義編碼傳給用戶界面模塊,使得用戶正常地看到包含四字節(jié)字符的內(nèi)容。
本發(fā)明四字節(jié)檢索系統(tǒng)包括如下模塊1、自然語言處理模塊A,用來進(jìn)行詞法的分析;2、建立索引模塊B,根據(jù)模塊A提供的詞法分析實現(xiàn)建立索引的功能;取得需要建立索引的包含四字節(jié)文字的內(nèi)容后,用模塊B建立索引;3、查詢引擎模塊C,提供查詢四字節(jié)索引庫的功能;4、控制模塊D,控制用戶界面模塊E與查詢引擎的交互,5、用戶界面模塊E,顯示包含四字節(jié)字符的內(nèi)容。
該系統(tǒng)的查詢流程1、用戶界面模塊E收集用戶輸入的查詢字串,傳遞給控制模塊D2、控制模塊D對查詢字串進(jìn)行繁體字異體字轉(zhuǎn)換,漢字有簡體和繁體之分,生成包含簡體和繁體的新查詢字串,如簡體“馬”,繁體為“馬”;用戶輸入的字串“馬”,經(jīng)過繁體轉(zhuǎn)換后就成為“馬OR馬”,有些漢字有異體字,通過增加異體漢字表提供異體字轉(zhuǎn)換功能。如“年”,它的異體字“秊”。用戶輸入“年”,經(jīng)過異體字轉(zhuǎn)換后成為“年OR秊”。在查找簡體漢字的同時也查找它對應(yīng)的繁體漢字和異體漢字的內(nèi)容(如果存在),然后調(diào)用自然語言處理模塊處理這些查詢字串,形成詞組表和查詢表達(dá)式;可以大大擴(kuò)大用戶返回給用戶的信息量,更好地滿足用戶的需求。
3、控制模塊D把查詢表達(dá)式傳遞給查詢引擎模塊C;4、查詢引擎模塊C在預(yù)先建立好的四字節(jié)索引庫上進(jìn)行查詢,形成查詢結(jié)果返回給控制模塊D;5、控制模塊D根據(jù)需要的頁數(shù)及每頁顯示的記錄數(shù),在查詢引擎形成的查詢結(jié)果上取出對應(yīng)的四字節(jié)字符內(nèi)容;6、控制模塊D根據(jù)步驟2形成的詞組表,加亮顯示詞組表中存在的四字節(jié)字符內(nèi)容;提供用戶結(jié)果內(nèi)容中查詢字串的加亮功能。對于返回給用戶的記錄內(nèi)容,把其中出現(xiàn)在用戶輸入的查詢子串中的漢字以區(qū)別于其它漢字的格式,包含加亮用戶輸入的查詢字串中的漢字的繁體和異體字,使得用戶可以一目了然地發(fā)現(xiàn)他需要的內(nèi)容。
7、控制模塊D把UCS-2編碼內(nèi)容以及四字節(jié)內(nèi)容轉(zhuǎn)換成用戶定義編碼格式返回給用戶界面模塊;把記錄內(nèi)容從UCS-2編碼或者四字節(jié)編碼,轉(zhuǎn)成用戶定義編碼,保證用戶反饋界面可以正常顯示。
8、用戶界面模塊接收到四字節(jié)字符內(nèi)容后,采用用戶定義編碼格式顯示給用戶。使用戶如常用漢字的中文網(wǎng)站一樣對含有生僻漢字的文本內(nèi)容自由地復(fù)制、再利用。
權(quán)利要求
1.一種網(wǎng)絡(luò)查詢四字節(jié)字符的方法,用戶輸入查詢字符,用戶界面模塊采用用戶定義編碼定義查詢字符,使得用戶輸入的包含四字節(jié)的內(nèi)容能夠正常顯示;將用戶定義編碼表達(dá)的查詢字串轉(zhuǎn)為Unicode編碼后傳給查詢引擎,查詢引擎返回查詢結(jié)果,該查詢結(jié)果以Unicode編碼定義;將查詢結(jié)果的Unicode編碼轉(zhuǎn)為用戶定義編碼傳給用戶界面模塊,使得用戶正常地看到包含四字節(jié)字符的查詢結(jié)果。
2.如權(quán)利要求1所述的網(wǎng)絡(luò)查詢四字節(jié)字符的方法,其特征在于對用戶界面模塊傳輸來的以及查詢引擎模塊返回結(jié)果數(shù)據(jù)中的四字節(jié)字符統(tǒng)一采用Unicode編碼代理對格式,即用兩個保留的UTF-16表示一個四字節(jié)字符。
3.如權(quán)利要求1所述的網(wǎng)絡(luò)查詢四字節(jié)字符的方法,其特征在于對用戶界面模塊傳輸來的以及查詢引擎模塊返回結(jié)果數(shù)據(jù)中的四字節(jié)字符統(tǒng)一采用UTF-32。
4.如權(quán)利要求1、2或3所述的網(wǎng)絡(luò)查詢四字節(jié)字符的方法,其特征在于對用戶界面模塊傳輸來的簡體漢字,首先進(jìn)行檢查是否有對應(yīng)的繁體漢字或異體漢字,如果有,則該次查詢表達(dá)為查找包含該簡體漢字、繁體漢字或者異體漢字的內(nèi)容,可擴(kuò)大返回給用戶的查詢結(jié)果,使之更能滿足用戶的需求。
5.一種網(wǎng)絡(luò)查詢四字節(jié)字符的系統(tǒng),包括用戶界面模塊和查詢引擎,用戶界面模塊和查詢引擎之間鏈接一控制模塊,用戶界面模塊采用用戶定義編碼,控制模塊把用戶輸入的以用戶定義編碼定義的查詢字串轉(zhuǎn)為Unicode編碼后傳給查詢引擎,而后又把查詢引擎返回的查詢結(jié)果的Unicode編碼轉(zhuǎn)為用戶定義編碼傳給用戶界面模塊,使得用戶正常地看到包含四字節(jié)字符的內(nèi)容。
6.如權(quán)利要求5所述的網(wǎng)絡(luò)查詢四字節(jié)字符的系統(tǒng),其特征在于該控制模塊包括一異體字表,對于用戶輸入的漢字,逐字進(jìn)行異體字檢查,如果有,則該次查詢表達(dá)為查找包含該漢字或者它的異體字的記錄,擴(kuò)大返回給用戶的搜索結(jié)果內(nèi)容,使之更能滿足用戶的需求。
7.如權(quán)利要求5或6所述的網(wǎng)絡(luò)查詢四字節(jié)字符的系統(tǒng),其特征在于該控制模塊對查詢引擎模塊返回結(jié)果中查詢字符進(jìn)行加亮。
8.如權(quán)利要求5所述的網(wǎng)絡(luò)查詢四字節(jié)字符的系統(tǒng),其特征在于查詢引擎包括自然語言處理模塊,用于進(jìn)行詞法分析;建立索引模塊,用于根據(jù)查詢字串建立索引;查詢引擎模塊,用于查詢四字節(jié)索引庫,并傳遞查詢結(jié)果。
全文摘要
本發(fā)明提供一種網(wǎng)絡(luò)查詢四字節(jié)文字的方法及系統(tǒng),屬于計算機通信網(wǎng)絡(luò)技術(shù)領(lǐng)域。該方法包括用戶輸入查詢字符,用戶界面模塊采用用戶定義編碼定義查詢字符,使得用戶輸入的包含四字節(jié)的內(nèi)容能夠正常顯示;控制模塊將用戶定義編碼表達(dá)的查詢字串轉(zhuǎn)為Unicode編碼后傳給查詢引擎,查詢引擎返回查詢結(jié)果,該查詢結(jié)果以Unicode編碼定義,同時,控制模塊再將查詢結(jié)果的Unicode編碼轉(zhuǎn)為用戶定義編碼傳給用戶界面模塊,使得用戶正常地看到包含四字節(jié)字符的查詢結(jié)果。本發(fā)明解決了目前在互聯(lián)網(wǎng)上無法利用通用的瀏覽器正常瀏覽、檢索和顯示帶有四個字節(jié)字符文本的難題,使得四字節(jié)字符文本內(nèi)容得以同二字節(jié)字符文本一樣在網(wǎng)絡(luò)世界中被人們便捷使用。
文檔編號G06F17/30GK1719440SQ200510012218
公開日2006年1月11日 申請日期2005年7月18日 優(yōu)先權(quán)日2005年7月18日
發(fā)明者林松祥, 趙鋒, 王宏源 申請人:王宏源