亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼方法和裝置的制造方法

文檔序號:9276849閱讀:609來源:國知局
一種數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼方法和裝置的制造方法
【技術(shù)領域】
[0001]本發(fā)明涉及網(wǎng)絡安全技術(shù),尤其涉及一種統(tǒng)一定位符(URL)數(shù)據(jù)的數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼方法和裝置。
【背景技術(shù)】
[0002]隨著網(wǎng)絡技術(shù)的快速發(fā)展,越來越多的用戶使用手機、計算機及平板電腦等設備上網(wǎng),用戶一般情況下會通過瀏覽器(如IE瀏覽器、Firefo瀏覽器及Chrome瀏覽器等)瀏覽網(wǎng)頁或提交數(shù)據(jù),或者采用網(wǎng)絡應用軟件(淘寶網(wǎng)軟件、京東網(wǎng)軟件以及當當網(wǎng)軟件)提交數(shù)據(jù)。在網(wǎng)絡安全和上網(wǎng)行為管理領域中,為了快速預防網(wǎng)絡犯罪行為,常常需要獲取并分析用戶通過瀏覽器和應用軟件所產(chǎn)生的網(wǎng)絡數(shù)據(jù),而大部分網(wǎng)絡數(shù)據(jù)通常由UTF8和GB18030編碼后經(jīng)過URLENC0DE再次編碼,其中,GB18030編碼又包含GBK編碼和GB2312編碼;因此,在還原用戶數(shù)據(jù)時,需要對網(wǎng)絡數(shù)據(jù)進行URLDEC0DE解碼,而解碼后的用戶數(shù)據(jù)通常為UTF8或GB18030編碼不等,故此,如何有效和準確的識別用戶數(shù)據(jù)的編碼類型,將用戶數(shù)據(jù)展現(xiàn)出來,是目前亟待解決的問題。
[0003]現(xiàn)有的網(wǎng)絡數(shù)據(jù)編碼識別方案主要限于以下幾種:
[0004]I)在用戶提交表單或下載數(shù)據(jù)時,數(shù)據(jù)報文中會帶有charset字樣,提取charset對應的編碼類型可以對數(shù)據(jù)報文進行編解碼,如果未提取到charset字樣的編碼類型,則會采用預先設定的編碼類型對數(shù)據(jù)報文進行編解碼。但是,針對沒有charset字樣的數(shù)據(jù)報文,在沒有預設的編碼類型或者預設的編碼類型錯誤的情況下,會直接造成數(shù)據(jù)亂碼;并且,上述方法需要定期的更新和維護預設地編碼類型,維護成本高,準確率較低。
[0005]2)通過待編碼網(wǎng)頁的參考編碼數(shù)組以及本地預設的備選編碼數(shù)組,確定出包含在該參考編碼數(shù)組和該備選編碼數(shù)組中的一種編碼類型作為待編碼網(wǎng)頁的編碼類型;但這種獲取數(shù)據(jù)編碼類型的方法對參考編碼數(shù)組和備選編碼數(shù)組的依賴性較大,如果數(shù)據(jù)報文不符合該參考編碼或備選編碼的編碼類型,則會造成數(shù)據(jù)亂碼;且該方式依賴于瀏覽器,需要用戶去選擇“自動檢測文字編碼”選項,用戶感知較強,無法達到無感知的自動檢測文字編碼,且需要不斷的更新和維護參考編碼數(shù)組和備選編碼數(shù)組,成本較大。
[0006]3)通過將輸入需要解碼的URL字符串數(shù)按不同的編碼方式進行解碼,得到不同的URL字符串,再對這些不同的URL字符串按其對應的解碼方式進行編碼,將編碼后不同的URL字符串與輸入需要解碼的編碼后的URL字符串對比,如果編碼后不同的URL字符串其中之一與輸入需要解碼的編碼后的URL字符串相同,則輸入需要解碼的編碼后的URL字符串的編碼類型為前者的編碼類型。但是,采用該編碼類型識別方案,假如輸入需要解碼的URL字符串滿足UTF8編碼和GB18030編碼重疊編碼區(qū)間,或同時滿足多種編碼類型的編碼范圍,按照此方案中將該URL數(shù)據(jù)按多種解碼方式解碼,再按多種編碼方式編碼,則會出現(xiàn)多對原始URL字符串與再次編碼后的數(shù)據(jù)一致的情況,當出現(xiàn)此情況時,將無法識別出正確的數(shù)據(jù)編碼類型。
[0007]因此,目前的編碼類型識別方案都存在明顯的缺陷:準確率低,維護成本高,容易造成數(shù)據(jù)亂碼。

【發(fā)明內(nèi)容】

[0008]有鑒于此,本發(fā)明實施例期望提供一種數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼方法,能夠提高數(shù)據(jù)編碼識別的準確率,減少亂碼,提高數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼效率,降低維護成本。
[0009]為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0010]本發(fā)明實施例提供了一種數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼方法,所述方法包括:
[0011]提取用戶操作產(chǎn)生的網(wǎng)絡報文中的關鍵數(shù)據(jù),對所述關鍵數(shù)據(jù)進行解碼;
[0012]確定所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)對應的編碼類型;
[0013]根據(jù)所述編碼類型,對所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)進行轉(zhuǎn)碼。
[0014]上述方案中,所述提取用戶操作產(chǎn)生的網(wǎng)絡報文中的關鍵數(shù)據(jù)包括:根據(jù)關鍵字或正則表達式,提取所述網(wǎng)絡報文中的關鍵數(shù)據(jù)。
[0015]上述方案中,所述方法還包括:
[0016]將不同的編碼類型劃分成多個編碼區(qū)間,并確定各編碼區(qū)間的優(yōu)先級關系。
[0017]上述方案中,所述確定所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)對應的編碼類型包括:
[0018]加載所述各編碼區(qū)間的配置信息;
[0019]循環(huán)遍歷所述解碼后的數(shù)據(jù),計算滿足各編碼區(qū)間的字符個數(shù);
[0020]根據(jù)所述解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符個數(shù)、以及各編碼區(qū)間的優(yōu)先級關系進行編碼類型判斷,確定所述解碼后的數(shù)據(jù)所對應的編碼類型;
[0021 ] 釋放所述各編碼區(qū)間的配置信息。
[0022]上述方案中,所述循環(huán)遍歷所述解碼后的數(shù)據(jù),計算滿足各編碼區(qū)間的字符個數(shù)包括:
[0023]按照各編碼區(qū)間的第一預設優(yōu)先級,依次判斷所述解碼后的數(shù)據(jù)中的字符是否滿足各編碼區(qū)間;統(tǒng)計所述解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符數(shù)。
[0024]上述方案中,所述根據(jù)解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符個數(shù)、以及各編碼區(qū)間的優(yōu)先級關系進行編碼類型判斷,確定所述解碼后的數(shù)據(jù)所對應的編碼類型包括:
[0025]按照各編碼區(qū)間的第二預設優(yōu)先級,依次判斷解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符數(shù)與所述解碼后的數(shù)據(jù)扣除空字符和O字符后的總長度的之間關系,根據(jù)解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符數(shù)與所述解碼后的數(shù)據(jù)扣除空字符和O字符后的總長度之間的關系確定所述關鍵數(shù)據(jù)所對應的編碼類型。
[0026]本發(fā)明實施例還提供了一種數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼裝置,所述裝置包括:關鍵數(shù)據(jù)提取單元、解碼單元、編碼類型識別單元、數(shù)據(jù)轉(zhuǎn)碼單元,其中,
[0027]所述關鍵數(shù)據(jù)提取單元,用于提取用戶操作產(chǎn)生的網(wǎng)絡報文中的關鍵數(shù)據(jù),并將提取的關鍵數(shù)據(jù)發(fā)送到解碼單元;
[0028]所述解碼單元,用于對所述關鍵數(shù)據(jù)進行解碼,并解碼后的數(shù)據(jù)發(fā)送到編碼類型識別單元;
[0029]所述編碼類型識別單元,用于確定所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)對應的編碼類型,并將確定的編碼類型發(fā)送到數(shù)據(jù)轉(zhuǎn)碼單元;
[0030]所述數(shù)據(jù)轉(zhuǎn)碼單元,用于根據(jù)所述編碼類型,對所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)進行轉(zhuǎn)碼。
[0031]上述方案中,所述關鍵數(shù)據(jù)提取單元具體用于:根據(jù)關鍵字或正則表達式,提取所述網(wǎng)絡報文中的關鍵數(shù)據(jù)。
[0032]上述方案中,所述裝置還包括編碼區(qū)間劃分單元,用于將不同的編碼類型劃分成多個編碼區(qū)間,并確定各編碼區(qū)間的優(yōu)先級關系。
[0033]上述方案中,所述編碼類型識別單元包括配置子單元、統(tǒng)計子單元、決策子單元、撤銷子單元,其中,
[0034]所述配置子單元,用于加載所述各編碼區(qū)間的配置信息;
[0035]所述統(tǒng)計子單元,用于循環(huán)遍歷所述解碼后的數(shù)據(jù),計算滿足各編碼區(qū)間的字符個數(shù);
[0036]所述決策子單元,用于根據(jù)所述解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符個數(shù)、以及各編碼區(qū)間的優(yōu)先級關系進行編碼類型判斷,確定所述解碼后的數(shù)據(jù)所對應的編碼類型;
[0037]所述撤銷子單元,用于釋放所述各編碼區(qū)間的配置信息。
[0038]上述方案中,所述統(tǒng)計子單元具體用于:按照各編碼區(qū)間的第一預設優(yōu)先級,依次判斷所述解碼后的數(shù)據(jù)中的字符是否滿足各編碼區(qū)間;統(tǒng)計所述解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符數(shù)。
[0039]上述方案中,所述決策子單元具體用于:按照各編碼區(qū)間的第二預設優(yōu)先級,依次判斷解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符數(shù)與所述解碼后的數(shù)據(jù)扣除空字符和O字符后的總長度的之間關系,根據(jù)解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符數(shù)與所述解碼后的數(shù)據(jù)扣除空字符和O字符后的總長度之間的關系確定所述關鍵數(shù)據(jù)所對應的編碼類型。
[0040]本發(fā)明實施例所提供的方法及裝置,先提取用戶操作產(chǎn)生的網(wǎng)絡報文中的關鍵數(shù)據(jù),對所述關鍵數(shù)據(jù)進行解碼;再確定所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)對應的編碼類型;最后根據(jù)所述編碼類型,對所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)進行轉(zhuǎn)碼。如此,能夠有效、準確地識別和轉(zhuǎn)換數(shù)據(jù),從而解決由于編碼類型識別錯誤導致的中文亂碼問題,提高了數(shù)據(jù)編碼識別的準確率;并且,數(shù)據(jù)編碼類型識別和解碼過程無須人工分析和維護,降低了維護成本,提高了用戶體驗。
【附圖說明】
[0041]圖1為本發(fā)明實施例一數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼方法流程示意圖;
[0042]圖2為本發(fā)明實施例二數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼方法流程示意圖;
[0043]圖3為本發(fā)明實施例數(shù)據(jù)編碼類型識別及轉(zhuǎn)碼裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0044]現(xiàn)有技術(shù)中大都是通過提取超文本傳輸協(xié)議(HTTP,HyperText TransferProtocol)報文中request header中的charset來獲得關鍵數(shù)據(jù)的編碼類型,或通過提取HTTP報文中response header中的charset來獲得關鍵數(shù)據(jù)的編碼類型,但是,如果HTTP 報文中 request header 中沒有 charset,或者 HTTP 報文中 response header 中沒有charset,或者HTTP數(shù)據(jù)報文中沒有相關的數(shù)據(jù)編碼類型,或者數(shù)據(jù)HTTP數(shù)據(jù)報文中的數(shù)據(jù)編碼類型是錯誤的,這種方法則會造成數(shù)據(jù)亂碼。如果通過預定義的方式來指定關鍵數(shù)據(jù)的編碼類型,那么,一旦該預定義的編碼類型錯誤或者HTTP報文的編碼類型發(fā)生變化,則也會造成數(shù)據(jù)亂碼,而且需要工作人員去維護該預定義的編碼類型,需要花費大量時間去分析和維護。
[0045]本發(fā)明實施例所述編碼類型識別及轉(zhuǎn)碼方法,通過分析常用編碼之間的關系,結(jié)合各種編碼的特點,總結(jié)編碼之間的規(guī)律,實現(xiàn)了一種URL編碼類型識別和轉(zhuǎn)碼的方法,可以有效和準確的識別和轉(zhuǎn)換數(shù)據(jù),可擴展性較強,無須人工分析和維護,降低了維護成本,給用戶帶來了良好的體驗。
[0046]本發(fā)明實施例中,先提取用戶操作產(chǎn)生的網(wǎng)絡報文中的關鍵數(shù)據(jù),對所述關鍵數(shù)據(jù)進行解碼;再確定所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)對應的編碼類型;最后根據(jù)所述編碼類型,對所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)進行轉(zhuǎn)碼。
[0047]本發(fā)明實施例所述編碼類型識別及轉(zhuǎn)碼方法,在確定所述關鍵數(shù)據(jù)解碼后的數(shù)據(jù)對應的編碼類型之前,首先需要將不同的編碼類型劃分成多個編碼區(qū)間,并確定各編碼區(qū)間的優(yōu)先級關系。所述編碼區(qū)間的優(yōu)先級關系包括第一優(yōu)先級和第二優(yōu)先級,其中,所述第一優(yōu)先級用于循環(huán)遍歷所述解碼后的數(shù)據(jù),計算滿足各編碼區(qū)間的字符個數(shù);所述第二優(yōu)先級用于根據(jù)所述解碼后的數(shù)據(jù)中滿足各編碼區(qū)間的字符個數(shù)進行編碼類型判斷,確定所述解碼后的數(shù)據(jù)所對應的編碼類型;所述優(yōu)先級可以根據(jù)不同編碼之間的關系、編碼區(qū)間內(nèi)碼字的使用情況、編碼的特點、碼字的生僻程度確定。
[0048]本發(fā)明實施例中,以UTF8編碼和GB18030編碼為例,具體闡述本發(fā)明實施例
當前第1頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1