網絡查詢四字節字符的方法及系統的製作方法
2023-10-08 13:00:34
專利名稱:網絡查詢四字節字符的方法及系統的製作方法
技術領域:
本發明屬於計算機網絡技術領域,具體涉及一種網絡查詢四字節文字的方法及系統。
背景技術:
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日
發明者林松祥, 趙鋒, 王宏源 申請人:王宏源