一种数据截取的方法和装置制造方法及图纸

技术编号:9537635 阅读:112 留言:0更新日期:2014-01-03 21:39
本发明专利技术公开了一种数据截取的方法和装置,能够达到对截取的数据解码后不会出现乱码,提高解码质量和用户体验的技术效果。本发明专利技术实施例提供的一种数据截取的方法包括:将需要截取的字符串转换为预定编码格式;判断转换后的字符串的长度是否大于截取长度,若否,提取所有转换后的字符串作为截取到的数据;若是,执行如下处理:将截取长度所对应的字节作为截取点字节,并根据所述预定编码格式,判断所述截取点字节是否位于后一个字符的开头字节之前;若是,从字符串的起始字节至所述截取点字节对转换后的字符串进行截取,作为截取到的数据;若否,利用所述截取点字节的前一字节更新截取点字节,直至判断出截取点字节位于后一个字符的开头字节之前。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种数据截取的方法和装置,能够达到对截取的数据解码后不会出现乱码,提高解码质量和用户体验的技术效果。本专利技术实施例提供的一种数据截取的方法包括:将需要截取的字符串转换为预定编码格式;判断转换后的字符串的长度是否大于截取长度,若否,提取所有转换后的字符串作为截取到的数据;若是,执行如下处理:将截取长度所对应的字节作为截取点字节,并根据所述预定编码格式,判断所述截取点字节是否位于后一个字符的开头字节之前;若是,从字符串的起始字节至所述截取点字节对转换后的字符串进行截取,作为截取到的数据;若否,利用所述截取点字节的前一字节更新截取点字节,直至判断出截取点字节位于后一个字符的开头字节之前。【专利说明】一种数据截取的方法和装置
本专利技术涉及信息处理
,特别涉及一种数据截取的方法和装置。
技术介绍
在数据传输和存储的过程中,由于容量的限制等因素,在很多场景下,都需要对原数据进行截取处理。例如,在传输协议中,头信息一般会固定长度。如果头信息超过了这个固定长度,就需要对这个头信息进行截取。现有方案通常采用直接从原数据中截取固定长度数据的方式进行数据截取。然而,现有的截取方案至少存在如下问题:当信息中包含了采用统一码(UNICODE)编码的字符时,由于一个字符所对应的UNICODE编码字节个数不确定,则有极大的可能所截取的最后一个字节是代表一个字符的若干字节中的中间的某个字节,从而导致对截取到的数据解码时最后一个字符的位置出现乱码,降低了解码质量和用户体验。
技术实现思路
本专利技术提供的一种数据截取的方法和装置,以解决现有数据截取方案导致解码后最后一个字符为乱码,解码质量和用户体验较低的问题。为达到上述目的,本专利技术实施例采用了如下技术方案:本专利技术实施例提供的一种数据截取的方法包括:将需要截取的字符串转换为预定编码格式;判断转换后的字符串的长度是否大于截取长度,若否,提取所有转换后的字符串作为截取到的数据;若是,执行如下处理:将截取长度所对应的字节作为截取点字节,并根据所述预定编码格式,判断所述截取点字节是否位于后一个字符的开头字节之前;若是,从字符串的起始字节至所述截取点字节对转换后的字符串进行截取,作为截取到的数据;若否,利用所述截取点字节的前一字节更新截取点字节,直至判断出截取点字节位于后一个字符的开头字节之前。本专利技术实施例提供的一种数据截取的装置包括:格式转换单元,用于将需要截取的字符串转换为预定编码格式;长度判断单元,用于判断转换后的字符串的长度是否大于截取长度;第一截取单元,用于在长度判断单元判断出转换后的字符串的长度不大于截取长度时,提取所有转换后的字符串作为截取到的数据;第二截取单元,用于在长度判断单元判断出转换后的字符串的长度大于截取长度时,将截取长度所对应的字节作为截取点字节,并根据所述预定编码格式,判断所述截取点字节是否位于后一个字符的开头字节之前,若是,从字符串的起始字节至所述截取点字节对转换后的字符串进行截取,作为截取到的数据;若否,利用所述截取点字节的前一字节更新截取点字节,直至判断出截取点字节位于后一个字符的开头字节之前。本专利技术实施例的有益效果是:本专利技术实施例通过在预定编码格式下,判断截取点字节是否位于后一字符的开头字节之前,并在截取长度内从位于后一字符开头字节之前的截取点字节执行数据的截取,确保了截取点不会出现在一个字符的多个字节的中间,能够达到对截取的数据解码后不会出现乱码,提高解码质量和用户体验的技术效果。【专利附图】【附图说明】图1为本专利技术实施例一提供的一种数据截取的方法流程图;图2为本专利技术实施例二提供的判断截取点字节位置的方法流程图;图3为本专利技术实施例三提供的一种数据截取的装置结构示意图。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本专利技术的技术构思主要在于每个字符都有对应的一个UNICODE表示,根据UNICODE编码和预定编码(如UTF-8编码)的对应关系,可以找出一个UNICODE字符的开头,如找出一个汉字的开头,该字符的开头之前,就是前面字符的结尾。这样的话,在截取时,通过只截取到前面字符结尾部分,即当前字符开头的前面,就不会出现截取到字符的中间字节导致对截取数据无法正常解码的问题,从而对字符的截取更精确,解码质量和用户体验更好。本专利技术实施例一提供的一种数据截取的方法,参见图1,包括:11:将需要截取的字符串转换为预定编码格式。12:判断转换后的字符串的长度是否大于截取长度,若否,执行步骤13,若是,执行步骤14。13:提取所有转换后的字符串作为截取到的数据,截取操作结束。14:将截取长度所对应的字节作为截取点字节,并根据所述预定编码格式,判断所述截取点字节是否位于后一个字符的开头字节之前,若是,执行步骤15,若否,执行步骤16。其中,在“判断所述截取点字节是否位于后一个字符的开头字节之前”的步骤中,将截取点字节所归属的字符作为当前字符时,后一个字符是指在字符串中紧邻该当前字符且在当前字符之后的下一个字符。后一个字符可以包含一个或多个字节,当后一个字符包含一个字节(如字节I)时,上述开头字节即为这个字节(即字节1),当后一个字符包含多个字节(如字节I至字节3)时,上述开头字节即为这多个字节中的第一个字节(字节I)。15:从字符串的起始字节至所述截取点字节对转换后的字符串进行截取,作为截取到的数据,截取操作结束。16:利用所述截取点字节的前一字节更新截取点字节,对更新后的截取点字节重复上述步骤14中的判断操作,直至判断出截取点字节位于后一个字符的开头字节之前,截取操作才结束。其中,在“利用所述截取点字节的前一字节更新截取点字节”的步骤中,截取点字节的前一字节是指在字符串中紧邻截取点字节且在截取点字节之前的上一个字节,更新的方式可以为将当前截取点字节的前一字节作为更新后所使用的截取点字节。注:对于本实施例中所描述的“前” “后”方向,一种示例的方式为将字符串的起始字节所在的位置视为前方,将字符串的结尾字节所在的位置视为后方。上述预定编码格式可以为8比特统一码转换格式(8-bit UnicodeTransformation Format, UTF-8), UTF-8 是一种针对统一码(Unicode)的可变长度字符编码,其用I到6个字节编码UNICODE字符,UTF-8的转换表参见下述表1,其中,符号X表示该比特位的数值既可能为0也可能为I。【权利要求】1.一种数据截取的方法,其特征在于,所述方法包括: 将需要截取的字符串转换为预定编码格式; 判断转换后的字符串的长度是否大于截取长度,若否,提取所有转换后的字符串作为截取到的数据;若是,执行如下处理: 将截取长度所对应的字节作为截取点字节,并根据所述预定编码格式,判断所述截取点字节是否位于后一个字符的开头字节之前; 若是,从字符串的起始字节至所述截取点字节对转换后的字符串进行截取,作为截取到的数据;若否,利用所述截取点字节的前一字节更新截取点字节,直至判断出截取点字节位于后一个字符的开头字节之前。2.根据权利要求1所述的方法,其特征在于, 所述预定编码格式为8比特统一码转换格式UTF-8。3. 根据权利要求2所本文档来自技高网...

【技术保护点】
一种数据截取的方法,其特征在于,所述方法包括:将需要截取的字符串转换为预定编码格式;判断转换后的字符串的长度是否大于截取长度,若否,提取所有转换后的字符串作为截取到的数据;若是,执行如下处理:将截取长度所对应的字节作为截取点字节,并根据所述预定编码格式,判断所述截取点字节是否位于后一个字符的开头字节之前;若是,从字符串的起始字节至所述截取点字节对转换后的字符串进行截取,作为截取到的数据;若否,利用所述截取点字节的前一字节更新截取点字节,直至判断出截取点字节位于后一个字符的开头字节之前。

【技术特征摘要】

【专利技术属性】
技术研发人员:何庆明刘李进
申请(专利权)人:北京新媒传信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1