CN115858717A - 一种字符转码的方法及装置 - Google Patents
一种字符转码的方法及装置 Download PDFInfo
- Publication number
- CN115858717A CN115858717A CN202211509424.1A CN202211509424A CN115858717A CN 115858717 A CN115858717 A CN 115858717A CN 202211509424 A CN202211509424 A CN 202211509424A CN 115858717 A CN115858717 A CN 115858717A
- Authority
- CN
- China
- Prior art keywords
- field
- identifier
- target
- length
- transcoding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种字符转码的方法及装置。涉及大数据,该字符转码的方法,包括:若识别当前待转码的第一字段的目标字段为中文字段时,则在所述目标字段对应空间的首尾分别预留第一标识符和第二标识符的位置;根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段;第二字段满足转码后的长度小于等于所述目标长度减去所述第一标识符和第二标识符的长度;将所述第二字段进行转码后填充至所述目标字段对应的空间中,并在预留的位置处添加所述第一标识符和第二标识符。本发明可实现转码后的中文为完整的字段,不会引发截断转码造成乱码。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种字符转码的方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有技术中,常采用多种字符集,字符集种类较多,每个字符集包含的字符个数不同,ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。
系统在进行字符间转换时,例如中英文混输的字段,目标长度若大于原来源字段的长度的情况,则可以正常转发,当目标长度若小于原来源字段长度的情况,则容易出现转码错误,比如出现中文字段被截断,转码后形成半个字符,导致乱码,但字符的转换的完整性对于转码非常重要。
发明内容
本发明实施例提供了一种字符转码的方法,包括:
若识别当前待转码的第一字段的目标字段为中文字段时,则在所述目标字段对应空间的首尾分别预留第一标识符和第二标识符的位置;
根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段;第二字段满足转码后的长度小于等于所述目标长度减去所述第一标识符和第二标识符的长度;
将所述第二字段进行转码后填充至所述目标字段对应的空间中,并在预留的位置处添加所述第一标识符和第二标识符。
根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段,包括:
若所述目标长度小于第一字段转码后的长度,则从第一字段中截取对应长度的字段作为第二字段;所述第二字段满足转码后的长度等于所述目标长度减去所述第一标识符和第二标识符的长度。
根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段,包括:
若所述目标长度减去所述第一标识符和第二标识符的长度,大于等于第一字段转码后的长度,则将所述第一字段全部作为第二字段;
所述方法还包括:
所述目标字段对应空间中,将所述第二字段进行转码后得到的有效字符以及首尾的第一标识符和第二标识符之外的位置,填充预设的填充字符。
若所述目标长度大于第一字段转码后的长度,将所述第二字段进行转码后填充至所述目标字段对应的空间中,包括:
按照预设的左对齐或者右对齐的方式,将所述第二字段进行转码后填充至所述目标字段对应的空间中。
所述第一字段的编码方式为EBCD码;所述第二字段的目标字段的编码方式为ASCII码。
所述第一标识符为0x0E,所述第二标识符为0x0F;或者
所述第一标识符为0x0F,所述第二标识符为0x0E。
所述填充字符为下述字符中任一或组合:
空格、星号、0x00。
本发明实施例提供了一种字符转码的装置,包括:
预留模块,用于若识别当前待转码的第一字段的目标字段为中文字段时,则在所述目标字段对应空间的首尾分别预留第一标识符和第二标识符的位置;
选取模块,用于根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段;第二字段满足转码后的长度小于等于所述目标长度减去所述第一标识符和第二标识符的长度;
转码处理模块,用于将所述第二字段进行转码后填充至所述目标字段对应的空间中,并在预留的位置处添加所述第一标识符和第二标识符。
发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述字符转码的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述字符转码的方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述字符转码的方法。
本发明实施例提供的字符转码的方法及装置,对于目标字段为中文字段,在目标字段的首尾预留第一标识符和第二标识符的位置,并根据目标字段的长度,从第一字段中选取对应的长度的第二字段,第二字段满足转码后的长度不大于目标字段的长度减去所述第一标识符和第二标识符的长度,然后将第二字段进行转码填充至目标字段对应的空间中,并在目标字段的首尾位置填充第一标识符和第二标识符。这样,遇到中英文混写的字符中的中文字段时,由于填充了第一标识符和第二标识来识别中文字段,并且从第一字段选取的第二字段转码后的长度也不会超过目标长度减去第一标识符和第二标识符的长度,从而达到转码后的中文为完整的字段,不会引发截断转码造成乱码。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中字符转码方法的流程图;
图2和图3为本发明实施例中转码后的目标字段的结构示例图;
图4为本发明实施例提供的实例的流程图;
图5为本发明实施例提供的字符转码的装置的结构框图;
图6为本发明实施例中的计算机设备示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
发明人在发明过程中注意到,从开发者角度而言,系统的转码是必须的基本的功能,但是一般的转码功能,会在字段出现混输(中英文)且目标字段的目标长度小于来源字段长度的情况下,转码出现乱码现象。
为了解决上述现有技术中问题,本发明实施例提供了一种字符转码的方法,参照图1所示,该方法包括:
S11、若识别当前待转码的第一字段的目标字段为中文字段时,则在所述目标字段对应空间的首尾分别预留第一标识符和第二标识符的位置;
S12、根据所述目标字段的长度,从所述第一字段中选取对应长度的第二字段;第二字段满足转码后的长度小于等于所述目标字段的长度减去所述第一标识符和第二标识符的长度;
S13、将所述第二字段进行转码后填充至所述目标字段对应的空间中,并在预留的位置处添加所述第一标识符和第二标识符。
对于待转码的字符集,需要将其中包含的各个字段逐个字段进行转换,在转换时,需要确定待转换的字段是否为中文字段,若是,则需要按照本发明实施例提供的字符转发的方法的方式进行转码,以保证中文不会被截断转码,出现半个字符导致乱码。
本发明实施例提供的上述字符转码的方法,对于目标字段为中文字段,在目标字段的首尾预留第一标识符和第二标识符的位置,并根据目标字段的长度,从第一字段中选取对应的长度的第二字段,第二字段满足转码后的长度不大于目标字段的长度减去所述第一标识符和第二标识符的长度,然后将第二字段进行转码填充至目标字段对应的空间中,并在目标字段的首尾位置填充第一标识符和第二标识符。这样,遇到中英文混写的字符中的中文字段时,由于填充了第一标识符和第二标识来识别中文字段,并且从第一字段选取的第二字段转码后的长度也不会超过目标长度减去第一标识符和第二标识符的长度,从而达到转码后的中文为完整的字段,不会引发截断转码造成乱码。
上述各步骤中,目标字段对应的目标长度,是系统为转码后的目标字段对应的空间的大小的长度,这个长度通常预先确定,可以是系统设置的固定长度或者可以是可变化的量。
进一步地,上述步骤S12中根据所述目标字段的长度,从所述第一字段中选取对应长度的第二字段的步骤,在具体实施时,可能会出现下述两种情况:
第一种情况:
若目标字段的长度,小于第一字段转码后的长度,则从第一字段中截取对应长度的字段作为第二字段;其中,第二字段满足转码后的长度等于目标长度减去所述第一标识符和第二标识符的长度。
第一种情况,是针对目标长度不太长的情况,在此情况,需要对第一字段进行截取,截取的长度满足转码后的长度等于所述目标长度减去所述第一标识符和第二标识符的长度。
比如第一字段转码后的长度为100字节,但是目标长度为80个字节,则需要从第一字段中截取一段,满足其转码后的长度等于80-2(第一标识符加上第二标识符的长度等于2字节)=78个字节的长度,转码后填充至目标字段对应的空间当中。
在目标字段对应的空间中,首尾位置分别填充了第一标识符和第二标识符。其他位置为截取的字段转码后的有效字符。转码后的目标字段的示例参照图2所示。
第二种情况,若目标长度减去第一标识符和第二标识符的长度,大于等于第一字段转码后的长度,则将所述第一字段全部作为第二字段;
第二种情况,是针对目标长度较长的情况,第一字段转码后的长度小于目标长度减去第一标识符和第二标识符的长度,此时,可以除了在目标字段对应的空间中,首尾位置分别填充第一标识符和第二标识符之外,将第二字段转码后得到的有效数据和第一标识符和第二标识符之外的位置填充预设的填充字符。
填充字符例如可以有多种,比如下述一种或多种的组合:空格、星号(*)、0或0x00等,不代表中文字符及相关标点符号的字符均可使用。
第二种情况下,转码后的目标字段的示例可参照图3所示。
在第二种情况下,可按照预设的左对齐或者右对齐的方式,将所述第二字段进行转码后填充至所述目标字段对应的空间中。对应地,上述填充字符所在的位置可根据左对齐或右对齐的剩下的字符位置来确定。
较佳地,上述第一字段的编码方式为EBCD码;所述第二字段的目标字段的编码方式为ASCII码。
ASCII码是一种目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。
EBCD码,即EBCDIC(extended binary coded decimal interchange code)码,是对BCD码的扩展,称为扩展BCD码。BCD(Binary-Coded Decimal)码是以4位的二进制数字码来标识十进制数字的一种方法。
进一步地,上述第一标识符为0x0E,第二标识为0x0F;或者反过来,第二标识符为0x0E,第一标识符为0x0F。
下面一个具体的实例为例进行说明。
该实例中,字段转换流程参照图4所示,包括如下步骤:
步骤1:接收待转换的数据包;
步骤2:总线系统需要将数据包进行逐字段转换,首先确定转换方向(A-ASCII码转EBCD码;E-EBCD码转ASCII码)。
步骤3:如果转换方向是E码,首先进行字段的预处理,在中文字段前后分别加0x0E和0x0F(若转换方向是A不需要执行本步骤),再根据目标字段的长度截取。
步骤4:根据目标字段对应的目标长度截取目标长度值,如目标长度较短,截取比目标长度少两个字节的长度,以预留字段前后0x0E和0x0F位置,以保证转码不出现半个汉字的情况。
步骤5:根据填充字符决定转码长度不够目标长度的情况下需要填充的内容,并根据预设的对齐方式(L左对齐,R右对齐),将转码后的字段填充到目标字段中。
针对上述问题,本发明实施例提供了一种字符转码的装置,参照图5所示,包括:
预留模块51,用于若识别当前待转码的第一字段的目标字段为中文字段时,则在所述目标字段对应空间的首尾分别预留第一标识符和第二标识符的位置;
选取模块52,用于根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段;第二字段满足转码后的长度小于等于所述目标长度减去所述第一标识符和第二标识符的长度;
转码处理模块53,用于将所述第二字段进行转码后填充至所述目标字段对应的空间中,并在预留的位置处添加所述第一标识符和第二标识符。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述的数据下载的方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述的数据下载的方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现前述数据下载的方法。
在实施本发明实施例提供的技术方案时,可以按如下方式实施。
图6为计算机设备示意图,如图所示,计算机设备中包括:
处理器500,用于读取存储器520中的程序,执行下列过程:
对数据下载的事件进行监听;
若监听到数据下载中断,则记录当前下载中断的位置;
响应于接收到的继续下载的请求,在HTTP请求头中记录所述下载中断的位置和数据结束的位置,并发送HTTP请求,以请求从所述下载中断的位置继续下载;
收发机510,用于在处理器500的控制下接收和发送数据。
其中,在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。
本发明实施例提供的数据下载的方法及装置,对下载事件进行监听,若出现数据下载中断,则记录下载中断的位置,当接收到继续下载的请求时,可以根据所记录的下载中断的位置和数据结束的位置,发送HTTP请求,以实现从上一次下载中断的位置继续下载,可实现从中断的位置处继续下载,可实现在准确的位置继续下载,保证了数据下载的完整性,避免重复下载整个数据文件造成的资源不必要的占用,提高了数据下载的效率,并且,是否启动继续下载可以基于用户请求来触发,可实现用户对断点下载操作更灵活的控制。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种字符转码的方法,其特征在于,包括:
若识别当前待转码的第一字段的目标字段为中文字段时,则在所述目标字段对应空间的首尾分别预留第一标识符和第二标识符的位置;
根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段;第二字段满足转码后的长度小于等于所述目标长度减去所述第一标识符和第二标识符的长度;
将所述第二字段进行转码后填充至所述目标字段对应的空间中,并在预留的位置处添加所述第一标识符和第二标识符。
2.如权利要求1所述的方法,其特征在于,根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段,包括:
若所述目标长度小于第一字段转码后的长度,则从第一字段中截取对应长度的字段作为第二字段;所述第二字段满足转码后的长度等于所述目标长度减去所述第一标识符和第二标识符的长度。
3.如权利要求1所述的方法,其特征在于,根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段,包括:
若所述目标长度减去所述第一标识符和第二标识符的长度,大于等于第一字段转码后的长度,则将所述第一字段全部作为第二字段;
所述方法还包括:
所述目标字段对应空间中,将所述第二字段进行转码后得到的有效字符以及首尾的第一标识符和第二标识符之外的位置,填充预设的填充字符。
4.如权利要求3所述的方法,其特征在于,若所述目标长度大于第一字段转码后的长度,将所述第二字段进行转码后填充至所述目标字段对应的空间中,包括:
按照预设的左对齐或者右对齐的方式,将所述第二字段进行转码后填充至所述目标字段对应的空间中。
5.如权利要求1-4任一项所述的方法,其特征在于,所述第一字段的编码方式为EBCD码;所述第二字段的目标字段的编码方式为ASCII码。
6.如权利要求5所述的方法,其特征在于,所述第一标识符为0x0E,所述第二标识符为0x0F;或者
所述第一标识符为0x0F,所述第二标识符为0x0E。
7.如权利要求3或4任一项所述的方法,其特征在于,所述填充字符为下述字符中任一或组合:
空格、星号、0x00。
8.一种字符转码的装置,其特征在于,包括:
预留模块,用于若识别当前待转码的第一字段的目标字段为中文字段时,则在所述目标字段对应空间的首尾分别预留第一标识符和第二标识符的位置;
选取模块,用于根据所述目标字段对应的目标长度,从所述第一字段中选取对应长度的第二字段;第二字段满足转码后的长度小于等于所述目标长度减去所述第一标识符和第二标识符的长度;
转码处理模块,用于将所述第二字段进行转码后填充至所述目标字段对应的空间中,并在预留的位置处添加所述第一标识符和第二标识符。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述字符转码的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述字符转码的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述字符转码的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211509424.1A CN115858717A (zh) | 2022-11-29 | 2022-11-29 | 一种字符转码的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211509424.1A CN115858717A (zh) | 2022-11-29 | 2022-11-29 | 一种字符转码的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858717A true CN115858717A (zh) | 2023-03-28 |
Family
ID=85667619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211509424.1A Pending CN115858717A (zh) | 2022-11-29 | 2022-11-29 | 一种字符转码的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858717A (zh) |
-
2022
- 2022-11-29 CN CN202211509424.1A patent/CN115858717A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016029801A1 (zh) | 编码、解码方法以及编码装置和解码装置 | |
RU2725763C1 (ru) | Способы и устройства для кодирования и декодирования двоичных данных | |
US11955992B2 (en) | Rate matching method and apparatus for polar code | |
US20070112810A1 (en) | Method for compressing markup languages files, by replacing a long word with a shorter word | |
JP5753946B2 (ja) | フォントファイルをダウンロードする方法およびシステム | |
CN113704002A (zh) | 一种基于私有协议的rpc组件的实现方法及rpc组件 | |
CN105071990A (zh) | 一种通用的信息系统接口测试方法及装置 | |
CN109067754B (zh) | 一种请求端与服务端的通信方法及系统 | |
CN115858717A (zh) | 一种字符转码的方法及装置 | |
CN113905093A (zh) | 序列化、反序列化方法、装置及电子设备 | |
US8452902B2 (en) | Methods for transmitting buffer size information | |
CN111414339B (zh) | 一种文件的处理方法、系统、装置、设备及介质 | |
CN112822265A (zh) | 数据编码方法、装置、设备端及存储介质 | |
CN116185512A (zh) | 用于ptc驱动器的驱动加载方法、装置、设备及介质 | |
US20230214577A1 (en) | Character string transmission method and device, computer, and readable storage medium | |
CN102799572B (zh) | 一种文本编码方式和文本编码装置 | |
CN111680474B (zh) | 文件乱码修复方法及装置 | |
CN102891732A (zh) | 数据发送方法和装置以及数据接收方法和装置 | |
CN100375425C (zh) | 用多数据类型表示来传送数据对象的方法和系统 | |
CN110401458B (zh) | 数据校验编码方法及系统 | |
CN107612919B (zh) | 协议配置方法及装置 | |
CN112015425A (zh) | 数据存储方法、读取方法、装置、电子设备及存储介质 | |
CN110298017B (zh) | 一种编码数据处理方法、装置及计算机存储介质 | |
CN110309191B (zh) | 存储业务数据的方法、装置和系统 | |
CN114172897B (zh) | 一种PC端和Android端文件传输方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |