国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

      文檔序號:9276849閱讀:來源:國知局
      ASCII編碼區(qū)間,則滿足ASCII編碼區(qū)間的字符數(shù)+1 ;偏移I位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度,即所述解碼后的數(shù)據(jù)遍歷完畢;
      [0159]步驟3.1.2:判斷前兩個字符(例:E8 BF)是否滿足UTF8與GB18030的重疊區(qū)間(包括可顯示區(qū)間和不可顯示區(qū)間),不滿足,則進行下一步;
      [0160]本步驟中,如果前兩個字符滿足UTF8與GB18030的重疊區(qū)間,則滿足UTF8與GB18030的重疊區(qū)間的字符數(shù)+2 ;偏移2位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度;
      [0161]步驟3.1.3:判斷前兩個字符(例:E8 BF)是否滿足空洞編碼區(qū)間,不滿足,則進行下一步;
      [0162]本步驟中,如果前兩個字符滿足空洞編碼區(qū)間,則滿足空洞編碼區(qū)間的字符數(shù)+2 ;偏移2位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度;
      [0163]步驟3.1.4:判斷前四個字符(例:E8 BF 99 E5)是否滿足GB18030的四字節(jié)編碼區(qū)間,不滿足,則進行下一步;如果滿足,則確定GB18030編碼類型為最終編碼類型;
      [0164]步驟3.1.5:判斷前六個字符(例:E8 BF 99 E5 BO BI)是否同時滿足GB18030編碼和UTF8非常用6字節(jié)組合編碼區(qū)間,不滿足,則進行下一步;
      [0165]本步驟中,如果前六個字符同時滿足GB18030編碼和UTF8非常用6字節(jié)組合編碼區(qū)間,則同時滿足GB18030編碼和UTF8非常用6字節(jié)組合編碼區(qū)間的字符數(shù)+6 ;偏移6位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度;
      [0166]步驟3.1.6:判斷前六個字符(例:E8 BF 99 E5 BO BI)是否同時滿足GBB18030編碼和UTF8中文編碼與UTF8非常用6字節(jié)編碼組合區(qū)間,不滿足,則進行下一步;
      [0167]本步驟中,如果前六個字符同時滿足GBB18030編碼和UTF8中文編碼與UTF8非常用6字節(jié)編碼組合區(qū)間,則同時滿足GBB18030編碼和UTF8中文編碼與UTF8非常用6字節(jié)編碼組合區(qū)間的字符數(shù)+6 ;偏移6位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度;
      [0168]步驟3.1.7:判斷前六個字符(例:E8 BF 99 E5 BO BI)是否同時滿足GB18030編碼和UTF8非常用編碼區(qū)間的不可顯示編碼區(qū)間與UTF8編碼6字節(jié)組合區(qū)間,不滿足,則進行下一步;
      [0169]本步驟中,如果前六個字符同時滿足GB18030編碼和UTF8非常用編碼區(qū)間的不可顯示編碼區(qū)間與UTF8編碼6字節(jié)組合區(qū)間,則同時滿足GB18030編碼和UTF8非常用編碼區(qū)間的不可顯示編碼區(qū)間與UTF8編碼6字節(jié)組合區(qū)間的字符數(shù)+6 ;偏移6位,返回步驟
      3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度;
      [0170]步驟3.1.8:判斷前三個字符(例:E8 BF 99)是否滿足UTF8編碼區(qū)間,滿足,則滿MUTFS編碼區(qū)間的字符數(shù)+3 ;偏移3位,返回步驟303A1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度。
      [0171]本步驟中,如果前三個字符不滿足UTF8編碼區(qū)間,則當(dāng)前字符不滿足任何編碼區(qū)間,確定所述解碼后的數(shù)據(jù)對應(yīng)的編碼類型為GB18030編碼。
      [0172]循環(huán)執(zhí)行步驟3.1中的各步驟,直至解碼后的數(shù)據(jù)中的所有字符遍歷完畢,本實施例中所述解碼后的數(shù)據(jù)的統(tǒng)計結(jié)果為:滿足ASCII編碼區(qū)間的字符個數(shù)為I個,滿足UTF8編碼區(qū)間字符個數(shù)為12個,滿足UTF8與GB18030編碼可顯示重疊編碼區(qū)間的字符個數(shù)為2個,滿足其他編碼區(qū)間的字符數(shù)均為O。
      [0173]步驟3.2:根據(jù)統(tǒng)計結(jié)果進行編碼類型決策;
      [0174]具體的,本發(fā)明實施例中所述解碼后的數(shù)據(jù)總長度M= 15,M減去空字符和O字符的長度后N = 15 ;
      [0175]本發(fā)明實施例進行編碼類型決策的過程包括以下步驟:
      [0176]步驟3.2.1:判斷N是否等于ASCII區(qū)間的字符長度1,判斷結(jié)果為不等于,進行下一步;
      [0177]步驟3.2.2:判斷N是否等于UTF8編碼區(qū)間的字符長度12與ASCII編碼區(qū)間字符長度I之和13,判斷結(jié)果為不等于,進行下一步;
      [0178]步驟3.2.3:判斷N是否等于GB18030編碼區(qū)間的字符長度O與ASCII編碼區(qū)間字符長度I之和1,判斷結(jié)果為不等于,進行下一步;
      [0179]步驟3.2.4:判斷N是否等于UTF8編碼區(qū)間的字符長度12、ASCII編碼區(qū)間字符長度I及UTF8編碼與GB18030編碼重疊區(qū)間字符長度2之和15,判斷結(jié)果為等于,認為所述解碼后的數(shù)據(jù)對應(yīng)的編碼類型為UTF8,提供需解碼數(shù)據(jù)的編碼類型為UTF8。
      [0180]步驟3.3:輸出關(guān)鍵數(shù)據(jù)的編碼類型為UTF8 ;
      [0181]步驟4:根據(jù)所述數(shù)據(jù)編碼類型,按照瀏覽器的編碼格式或其他編碼格式需求進行轉(zhuǎn)碼。
      [0182]本步驟中,假如識別到的編碼類型為UTF8,而瀏覽器的編碼格式為GB18030,則需要將UTF8格式的數(shù)據(jù)轉(zhuǎn)換為GB18030格式的數(shù)據(jù),即可顯示,否則將會亂碼。
      [0183]本發(fā)明第二具體實施例所分析的網(wǎng)絡(luò)報文如下所示,本實施例中,以HTTP報文為例,但不限于HTTP報文;本實施例僅屬于本發(fā)明思想的一部分,并非全部內(nèi)容。
      [0184]本實施例中,網(wǎng)絡(luò)報文如下所示:
      [0185]POST/aj/mblog/add ? domain = 2869929424&ajwvr = 6&__rnd =1416799662398HTTP/1.1
      [0186]Host:weib0.com
      [0187]Connect1n:keep-alive
      [0188]...........略
      [0189]locat1n = v6_content_home&appkey = &style_type = l&pic_id = &text = %EA % 89 % 81 % ED % 84 % 87&pdetail = &rank = O&rankid = &module = stissue&pub_type = dialog&_t = 0
      [0190]本實施例所述方法參照圖2所示流程,具體包括以下步驟:
      [0191]步驟1:提取該報文中的關(guān)鍵字“text =”后的關(guān)鍵數(shù)據(jù);
      [0192]本步驟中,所述關(guān)鍵數(shù)據(jù)為:% ea% 89% 81% ed% 84% 87 ;
      [0193]步驟2:將提取出來的關(guān)鍵字:% EA% 89% 81% ED% 84% 87進行解碼;
      [0194]本步驟中,解碼后的十六進制數(shù)為:EA 89 81 ED 8487 ;
      [0195]步驟3:將解碼后的數(shù)據(jù)進行數(shù)據(jù)編碼類型識別;
      [0196]本實施例中,步驟3包括以下子步驟:
      [0197]步驟3.1:對所述解碼后的數(shù)據(jù)進行編碼字符統(tǒng)計;
      [0198]本步驟中,根據(jù)預(yù)設(shè)的編碼區(qū)間、優(yōu)先級關(guān)系以及權(quán)重,從高優(yōu)先級至低優(yōu)先級對該數(shù)據(jù)進行遍歷統(tǒng)計,具體如下:
      [0199]步驟3.1.1:判斷第一個字符(例:EA)是否滿足ASCII編碼區(qū)間,不滿足,則進行下一步;
      [0200]本步驟中,如果第一個字符E8滿足ASCII編碼區(qū)間,則滿足ASCII編碼區(qū)間的字符數(shù)+1 ;偏移I位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度;
      [0201]步驟3.1.2:判斷前兩個字符(例:EA 89)是否滿足UTF8與GB18030的重疊區(qū)間(包括可顯示區(qū)間和不可顯示區(qū)間),不滿足,則進行下一步;
      [0202]本步驟中,如果前兩個字符滿足UTF8與GB18030的重疊區(qū)間,則滿足UTF8與GB18030的重疊區(qū)間的字符數(shù)+2 ;偏移2位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度;
      [0203]步驟3.1.3:判斷前兩個字符(例:EA 89)是否滿足空洞編碼區(qū)間,不滿足,則進行下一步;
      [0204]本步驟中,如果前兩個字符滿足空洞編碼區(qū)間,則滿足空洞編碼區(qū)間的字符數(shù)+2 ;偏移2位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù),直至可偏移的最大長度;
      [0205]步驟3.1.4:判斷前四個字符(例:EA 89 81 ED)是否滿足GB18030的四字節(jié)編碼區(qū)間,不滿足,則進行下一步,如果滿足,則確定GB18030編碼為最終編碼類型;
      [0206]步驟3.1.5:判斷前六個字符(例:EA 89 81 ED 84 87)是否同時滿足GB18030編碼和UTF8非常用6字節(jié)組合編碼區(qū)間,滿足,則同時滿足GB18030編碼和UTF8非常用6字節(jié)組合編碼區(qū)間的字符數(shù)+6,偏移6位,返回步驟3.1.1,繼續(xù)遍歷統(tǒng)計后續(xù)數(shù)據(jù);
      [0207]本步驟中,如果前六個字符不同時滿足GB18030編碼和UTF8非常用6字節(jié)組合編碼區(qū)間,則當(dāng)前字符不滿足任何編碼區(qū)間,確定所述解碼后的數(shù)據(jù)對應(yīng)的編碼類型為GB18030 編碼。
      [0208]循環(huán)執(zhí)行步驟3.1中的各步驟,直至解碼后的數(shù)據(jù)中的所有字符遍歷完畢,本實施例中所述解碼后的數(shù)據(jù)的統(tǒng)計結(jié)果為:滿足UTF8非常用6字節(jié)組合編碼區(qū)間的字符個數(shù)為6,滿足其他編碼區(qū)間的字符數(shù)均為O。
      [0209]步驟3.2:根據(jù)統(tǒng)計結(jié)果進行編碼類型決策;
      [0210]具體的,本發(fā)明實施例中所述解碼后的數(shù)據(jù)總長度M = 6,減去空字符和O字符的長度后為N = 6 ;
      [0211]本發(fā)明實施例進行編碼類型決策的過程包括以下步驟:
      [0212]步驟3.2.1:判斷N是否等于ASCII區(qū)間的字符長度0,判斷結(jié)果為不等于,進行下一步;
      [0213]步驟3.2.2:判斷N是否等于UTF8編碼區(qū)間的字符長度O與ASCII編碼區(qū)間字符長度O之和0,判斷結(jié)果為不等于,進行下一步;
      [0214]步驟3.2.3:判斷N是否等于GB18030編碼區(qū)間的字符長度O與ASCII編碼區(qū)間字符長度O之和0,判斷結(jié)果為不等于,進行下一步;
      [0215]步驟3.2.4:判斷N是否等于UTF8編碼區(qū)間的字符長度O、ASCII編碼區(qū)間字符長度O及UTF8編碼與GB18030編碼重疊區(qū)間字符長度O之和0,判斷結(jié)果為不等于,進行下一步;
      [0216]步驟3.2.5:判斷N是否等于同時滿足GB18030編碼和UTF8非常用6字節(jié)編碼組合區(qū)間的字符長度為6,判斷結(jié)果為等于,認為所述解碼后的數(shù)據(jù)對
      當(dāng)前第4頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1