新四季網

一種數據截取的方法和裝置製造方法

2023-05-01 01:49:41

一種數據截取的方法和裝置製造方法
【專利摘要】本發明公開了一種數據截取的方法和裝置,能夠達到對截取的數據解碼後不會出現亂碼,提高解碼質量和用戶體驗的技術效果。本發明實施例提供的一種數據截取的方法包括:將需要截取的字符串轉換為預定編碼格式;判斷轉換後的字符串的長度是否大於截取長度,若否,提取所有轉換後的字符串作為截取到的數據;若是,執行如下處理:將截取長度所對應的字節作為截取點字節,並根據所述預定編碼格式,判斷所述截取點字節是否位於後一個字符的開頭字節之前;若是,從字符串的起始字節至所述截取點字節對轉換後的字符串進行截取,作為截取到的數據;若否,利用所述截取點字節的前一字節更新截取點字節,直至判斷出截取點字節位於後一個字符的開頭字節之前。
【專利說明】一種數據截取的方法和裝置
【技術領域】
[0001]本發明涉及信息處理【技術領域】,特別涉及一種數據截取的方法和裝置。
【背景技術】
[0002]在數據傳輸和存儲的過程中,由於容量的限制等因素,在很多場景下,都需要對原數據進行截取處理。例如,在傳輸協議中,頭信息一般會固定長度。如果頭信息超過了這個固定長度,就需要對這個頭信息進行截取。現有方案通常採用直接從原數據中截取固定長度數據的方式進行數據截取。
[0003]然而,現有的截取方案至少存在如下問題:
[0004]當信息中包含了採用統一碼(UNICODE)編碼的字符時,由於一個字符所對應的UNICODE編碼字節個數不確定,則有極大的可能所截取的最後一個字節是代表一個字符的若干字節中的中間的某個字節,從而導致對截取到的數據解碼時最後一個字符的位置出現亂碼,降低了解碼質量和用戶體驗。

【發明內容】

[0005]本發明提供的一種數據截取的方法和裝置,以解決現有數據截取方案導致解碼後最後一個字符為亂碼,解碼質量和用戶體驗較低的問題。
[0006]為達到上述目的,本發明實施例採用了如下技術方案:
[0007]本發明實施例提供的一種數據截取的方法包括:
[0008]將需要截取的字符串轉換為預定編碼格式;
[0009]判斷轉換後的字符串的長度是否大於截取長度,若否,提取所有轉換後的字符串作為截取到的數據;若是,執行如下處理:
[0010]將截取長度所對應的字節作為截取點字節,並根據所述預定編碼格式,判斷所述截取點字節是否位於後一個字符的開頭字節之前;
[0011]若是,從字符串的起始字節至所述截取點字節對轉換後的字符串進行截取,作為截取到的數據;若否,利用所述截取點字節的前一字節更新截取點字節,直至判斷出截取點字節位於後一個字符的開頭字節之前。
[0012]本發明實施例提供的一種數據截取的裝置包括:
[0013]格式轉換單元,用於將需要截取的字符串轉換為預定編碼格式;
[0014]長度判斷單元,用於判斷轉換後的字符串的長度是否大於截取長度;
[0015]第一截取單元,用於在長度判斷單元判斷出轉換後的字符串的長度不大於截取長度時,提取所有轉換後的字符串作為截取到的數據;
[0016]第二截取單元,用於在長度判斷單元判斷出轉換後的字符串的長度大於截取長度時,將截取長度所對應的字節作為截取點字節,並根據所述預定編碼格式,判斷所述截取點字節是否位於後一個字符的開頭字節之前,若是,從字符串的起始字節至所述截取點字節對轉換後的字符串進行截取,作為截取到的數據;若否,利用所述截取點字節的前一字節更新截取點字節,直至判斷出截取點字節位於後一個字符的開頭字節之前。
[0017]本發明實施例的有益效果是:
[0018]本發明實施例通過在預定編碼格式下,判斷截取點字節是否位於後一字符的開頭字節之前,並在截取長度內從位於後一字符開頭字節之前的截取點字節執行數據的截取,確保了截取點不會出現在一個字符的多個字節的中間,能夠達到對截取的數據解碼後不會出現亂碼,提高解碼質量和用戶體驗的技術效果。
【專利附圖】

【附圖說明】
[0019]圖1為本發明實施例一提供的一種數據截取的方法流程圖;
[0020]圖2為本發明實施例二提供的判斷截取點字節位置的方法流程圖;
[0021]圖3為本發明實施例三提供的一種數據截取的裝置結構示意圖。
【具體實施方式】
[0022]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。
[0023]本發明的技術構思主要在於每個字符都有對應的一個UNICODE表示,根據UNICODE編碼和預定編碼(如UTF-8編碼)的對應關係,可以找出一個UNICODE字符的開頭,如找出一個漢字的開頭,該字符的開頭之前,就是前面字符的結尾。這樣的話,在截取時,通過只截取到前面字符結尾部分,即當前字符開頭的前面,就不會出現截取到字符的中間字節導致對截取數據無法正常解碼的問題,從而對字符的截取更精確,解碼質量和用戶體驗更好。
[0024]本發明實施例一提供的一種數據截取的方法,參見圖1,包括:
[0025]11:將需要截取的字符串轉換為預定編碼格式。
[0026]12:判斷轉換後的字符串的長度是否大於截取長度,若否,執行步驟13,若是,執行步驟14。
[0027]13:提取所有轉換後的字符串作為截取到的數據,截取操作結束。
[0028]14:將截取長度所對應的字節作為截取點字節,並根據所述預定編碼格式,判斷所述截取點字節是否位於後一個字符的開頭字節之前,若是,執行步驟15,若否,執行步驟16。其中,在「判斷所述截取點字節是否位於後一個字符的開頭字節之前」的步驟中,將截取點字節所歸屬的字符作為當前字符時,後一個字符是指在字符串中緊鄰該當前字符且在當前字符之後的下一個字符。後一個字符可以包含一個或多個字節,當後一個字符包含一個字節(如字節I)時,上述開頭字節即為這個字節(即字節1),當後一個字符包含多個字節(如字節I至字節3)時,上述開頭字節即為這多個字節中的第一個字節(字節I)。
[0029]15:從字符串的起始字節至所述截取點字節對轉換後的字符串進行截取,作為截取到的數據,截取操作結束。
[0030]16:利用所述截取點字節的前一字節更新截取點字節,對更新後的截取點字節重複上述步驟14中的判斷操作,直至判斷出截取點字節位於後一個字符的開頭字節之前,截取操作才結束。其中,在「利用所述截取點字節的前一字節更新截取點字節」的步驟中,截取點字節的前一字節是指在字符串中緊鄰截取點字節且在截取點字節之前的上一個字節,更新的方式可以為將當前截取點字節的前一字節作為更新後所使用的截取點字節。
[0031]注:對於本實施例中所描述的「前」 「後」方向,一種示例的方式為將字符串的起始字節所在的位置視為前方,將字符串的結尾字節所在的位置視為後方。
[0032]上述預定編碼格式可以為8比特統一碼轉換格式(8-bit UnicodeTransformation Format, UTF-8), UTF-8 是一種針對統一碼(Unicode)的可變長度字符編碼,其用I到6個字節編碼UNICODE字符,UTF-8的轉換表參見下述表1,其中,符號X表示該比特位的數值既可能為0也可能為I。
[0033]
【權利要求】
1.一種數據截取的方法,其特徵在於,所述方法包括: 將需要截取的字符串轉換為預定編碼格式; 判斷轉換後的字符串的長度是否大於截取長度,若否,提取所有轉換後的字符串作為截取到的數據;若是,執行如下處理: 將截取長度所對應的字節作為截取點字節,並根據所述預定編碼格式,判斷所述截取點字節是否位於後一個字符的開頭字節之前; 若是,從字符串的起始字節至所述截取點字節對轉換後的字符串進行截取,作為截取到的數據;若否,利用所述截取點字節的前一字節更新截取點字節,直至判斷出截取點字節位於後一個字符的開頭字節之前。
2.根據權利要求1所述的方法,其特徵在於, 所述預定編碼格式為8比特統一碼轉換格式UTF-8。
3. 根據權利要求2所述的方法,其特徵在於,利用如下方式,根據所述預定編碼格式,判斷所述截取點字節是否位於後一個字符的開頭字節之前: 判斷截取點字節的後一字節的最高位是否為O,若是,則確認該截取點字節位於後一個字符的開頭字節之前,若否,判斷截取點字節的後一字節的次高位是否為1,若該次高位為I,則確認該截取點字節位於後一個字符的開頭字節之前,若該次高位不為I,確認該截取點字節不位於後一個字符的開頭字節之前。
4.根據權利要求1至3任一項所述的方法,其特徵在於,所述方法還包括: 對所述截取到的數據按照UTF-8編碼格式進行解碼。
5.根據權利要求1至3任一項所述的方法,其特徵在於,在所述將需要截取的字符串轉換為預定編碼格式之前,所述方法還包括: 判斷需要截取的字符串是否為空,若為空,返回空字符串,若不為空,將需要截取的字符串轉換為預定編碼格式。
6.一種數據截取的裝置,其特徵在於,所述裝置包括: 格式轉換單元,用於將需要截取的字符串轉換為預定編碼格式; 長度判斷單元,用於判斷轉換後的字符串的長度是否大於截取長度; 第一截取單元,用於在長度判斷單元判斷出轉換後的字符串的長度不大於截取長度時,提取所有轉換後的字符串作為截取到的數據; 第二截取單元,用於在長度判斷單元判斷出轉換後的字符串的長度大於截取長度時,將截取長度所對應的字節作為截取點字節,並根據所述預定編碼格式,判斷所述截取點字節是否位於後一個字符的開頭字節之前,若是,從字符串的起始字節至所述截取點字節對轉換後的字符串進行截取,作為截取到的數據;若否,利用所述截取點字節的前一字節更新截取點字節,直至判斷出截取點字節位於後一個字符的開頭字節之前。
7.根據權利要求6所述的裝置,其特徵在於, 所述格式轉換單元,用於將需要截取的字符串轉換為8比特統一碼轉換格式UTF-8。
8.根據權利要求7所述的裝置,其特徵在於,所述第二截取單元利用如下方式,根據所述預定編碼格式,判斷所述截取點字節是否位於後一個字符的開頭字節之前: 判斷截取點字節的後一字節的最高位是否為O,若是,則確認該截取點字節位於後一個字符的開頭字節之前,若否,判斷截取點字節的後一字節的次高位是否為1,若該次高位為I,則確認該截取點字節位於後一個字符的開頭字節之前,若該次高位不為I,確認該截取點字節不位於後一個字符的開頭字節之前。
9.根據權利要求6至8任一項所述的裝置,其特徵在於,所述裝置還包括解碼單元,用於對所述截取到的數據按照UTF-8編碼格式進行解碼。、
10.根據權利要求6至8任一項所述的裝置,其特徵在於,所述裝置還包括空字符串處理單元,用於判斷需要截取的字符串是否為空,若為空,返回空字符串,若不為空,調用所述格式轉換單元將需要截取的字符串轉換為預定編碼格式。
【文檔編號】G06F17/22GK103488617SQ201210192127
【公開日】2014年1月1日 申請日期:2012年6月11日 優先權日:2012年6月11日
【發明者】何慶明, 劉李進 申請人:北京新媒傳信科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀