具体实施方式
本发明实施例提供了一种短信编、解码方法和终端,用于增加一条短信能够发送的最大字符个数,提高资源利用率。
参照图1,为本发明实施例一中短信编码方法流程图,以下通过具体步骤进行详细说明:
步骤101、当短信中存在以Unicode方式编码的字符时,判断所述短信中的字符为Unicode方式的编码字符还是以ASCII方式编码的字符;如果所述字符为Unicode方式编码的字符,则执行步骤102;如果所述字符为ASCII方式编码的字符,则执行步骤103;
步骤102、将短信中以Unicode方式编码的字符转换成以9bit编码方式编码的字符;
步骤103、将短信中以ASCII方式编码的字符转换成以9bit编码方式编码的字符。
可见,当短信中存在Unicode字符时,将短信中的以Unicode方式编码的字符和以ASCII方式编码的字符都转换为9bit编码方式编码的字符,由于ASCII方式为7bit编码方式,而Unicode方式为16bit编码方式,通过将短信中存在的16bit编码方式的字符和7bit编码方式的字符重新编码为9bit编码方式的字符,当短信中存在16bit编码方式的字符时,就不需要将7bit编码方式字符转换成为16bit编码方式的字符,因此,可以增加一条短信所能发送的最大字符数,因而可以提高资源利用率。
为使本领域技术人员更好地理解和实现本发明实施例,以下通过在发送短信时的具体应用进行详细说明:
参照图2,为本发明实施例二中短信编码方法流程图,以下通过具体步骤进行详细说明:
步骤201、在编辑短信时,判断短信中是否存在Unicode字符;如果否,则执行步骤202;如果是,则执行步骤203;
步骤202、采用7bit编码方式编码,并执行步骤209;
步骤203、分别取字符;
步骤204、判断该字符是否为Unicode字符,如果否,则执行步骤205;如果是,则执行步骤206;
步骤205、将ASCII字符扩充为8bit,然后在8bit数据后面再加上1bit作为第二标志位,该位上的值设为0,并执行步骤107;
通常短信中存在两种编码方式的字符:Unicode字符和ASCII字符,ASCII字符采用的是7bit编码方式,Unicode字符采用16bit编码方式。
步骤206、首先将其拆分为2个8bit数据,每个8bit数据后面加上1bit作为第一标志位,该位上的值设为1,并执行步骤207;
可以理解的是,所述第一标志位与第二标志位位置相同,取值不同,用于区分编码前字符为ASCII编码方式的字符还是Unicode编码方式的字符。
步骤207、判断是否加密,如果是,则执行步骤208;如果否,则执行步骤209;
步骤208、按照预设的加密算法加密;
为了增强安全性,可以采用一定的加密算法对短信进行加密。
步骤209、发送短信。
例如,发送短信内容为:“你好,Hello!”
由于短信中存在:“你”、“好”等Unicode字符,如果按照现有技术的方法,需要完全采用USC2这种16bit的编码方式进行编码,则编码结果参照表1,为字符与USC2编码方式对照表。
字符 |
你 |
好 |
, |
USC2编码 |
0100111101100000 |
0101100101111101 |
1111111100001100 |
字符 |
H |
e |
l |
USC2编码 |
0000000001001000 |
0000000001100101 |
0000000001101100 |
字符 |
l |
o |
! |
USC2编码 |
0000000001101100 |
0000000001101111 |
0000000000100001 |
表1字符与USC2编码方式对照表
从表1可以看出,9个字符共占用144bit存储空间。
如果采用9bit编码方式,则编码结果参照表2,为字符与9bit编码方式对照表。
字符 |
你 |
好 |
, |
9bit编码 |
010011111011000001 |
010110011011111011 |
111111111000011001 |
字符 |
H |
e |
l |
9bit编码 |
010010000 |
011001010 |
011011000 |
字符 |
l |
o |
! |
9bit编码 |
011011000 |
011011110 |
001000010 |
表2字符与9bit编码方式对照表
从表2可以看出,9个字符共占用108bit的存储空间。
如果短信中只有一个Unicode字符,剩余的全是ASCII字符,如果按照UCS2编码方式,一次最多可以发送70个字符,而采用9bit编码后,能够发送[70*16/9]-1=123个字符。可见,会比采用USC2编码方式下能够发送的最大字符数多很多。
因此,采用9bit编码方式,最多可以发送124个字符。可见,当短信中存在Unicode字符时,将字符重新采用9bit编码方式进行编码,在绝大多数情况下,可以减少短信所占的存储空间,可以尽可能地增加一条短信能够发送的最大字符数,提高资源利用率。
可以理解的是,在步骤205中,将7bit编码方式的字符扩展为8bit时,可以在7bit数据的最前面、最后面扩展1bit数据,也可以在7bit任意一位中间插入1bit数据,只要预先统一所扩展的位置即可。扩展的值可以为O,也可以为1,用于区分Unicode字符和ASCII字符。
对于步骤205和步骤206中,通过在每个8bit数据的后面扩展1bit作为标志位,也是本发明实施例所采用的一种较佳实现方式,可以理解的是,可以在扩展或拆分后所形成的8bit数据的任意一位的前面或后面扩展一位作为标志位,用于区分Unicode字符和ASCII字符。如果Unicode字符对应的标志位设置为0,则ASCII字符对应的标志位设置为1;如果Unicode字符对应的标志位设置为1,则ASCII字符对应的标志位设置为O。
而且,由于拆分Unicode字符后,所形成的连续的两个8bit数据,采用同样的标志位,因此,可以通过判断第二个9bit数据上的标志位是否与第一个相同,来识别是否为Unicode字符。例如,如果预设拆分Unicode字符所形成的2个连续的8bit数据的标志位为1,而如果检测到第1个9bit数据的标志位为1,而第2个9bit数据的标志位为O的话,则说明字符编码错误,该短信无法识别,会产生乱码。
在采用9bit编码方式进行编码后,一条短信最多能够发送[1120/9]=124个字符,还剩余(1120-124*9)=4bit数据,可以利用这4bit数据,按照双方预先设定的加密算法进行加密,以保证数据安全。需要加密的数据有124*9=ll16bit,因此加密有
种可能的结果,因此,在一定条件下可以认为这是难以攻破的。
可以理解的是,也可以采用别的实现方式将Unicode编码方式的字符和ASCII编码方式的字符转换为9bit编码方式的字符,不再一一举例说明。
以下对采用上述编码方法所形成的9bit编码的字符进行解码的过程进行详细描述:
参照图3,为本发明实施例三中解码方法流程图,以下通过具体步骤进行详细说明:
步骤301、获取采用9比特编码方式的短信;
步骤302、将所述短信中由Unicode编码字符转换的9比特字符,转换成Unicode方式编码的字符;将所述短信中由ASCII编码字符转换的9比特字符,转换成ASCII方式编码的字符。
以下通过在接收短信中的具体应用说明本发明实施例所采用的短信解码方法:
参照图4,为本发明实施例四中短信解码方法流程图,设获取的9bit编码方式字符的第9位为标志位,该位设为1,表示编码为9bit字符前采用的为ASCII编码方式;如果获取的连续两个9bit编码方式的字符的第9位均为0,表示编码为9bit字符前这两个9bit数据为一个Unicode字符,以下相应介绍本发明实施例中短信解码方法:
步骤401、接收短信数据包;
步骤402、判断是否采用9bit编码方式,如果否,执行步骤403;如果是,执行步骤404;
步骤403、采用7bit字符解码;
步骤404、每次取9个bit的数据;
步骤405、判断第9位是否为1,如果否,执行步骤406;如果是,执行步骤407;
步骤406、只取一个9bit数据,丢弃标志位第9位上的值,组成8bit数据,再丢弃8bit数据的最高位0,然后按照7bit字符解码;
步骤407、连续取2个9bit数据,丢弃每个9bit数据的标志位第9位上的值,组成16bit数据,按照Unicode字符解码;
步骤408、短信解码完毕后,显示短信内容或者保存短信内容。
可见,这种解码方法可以对采用9bit编码方式的短信进行解码,使得用户可以识别出9bit编码方式的字符,由于采用9bit编码方式的短信可以增加一条短信的最大字符数,因此,这种解码方式也相应地方便了用户。
如果短信在编码过程中利用短信采用9bit编码后所剩余的比特采用了预设的加密算法进行了加密,则在接收到采用了9bit编码方式的短信数据包时,采用相应的解密算法进行解密。
可以理解的是,本发明实施例中所采用的字符编码方法也可以应用于邮件或者其他形式的文本传输过程中,当文本中存在Unicode字符时,对字符预先进行编码,可以提高带宽资源的利用率。
为使本领域技术人员更好地理解和实现本发明实施例,以下对实施上述编、解码方法的终端进行相应描述:
参照图5,为本发明实施例五中终端结构示意图,该终端包括:判断单元501、第一编码单元502、第二编码单元503,其中:
判断单元501,用于判断短信中是否存在以通用字符集Unicode方式编码的字符,并在存在Unicode编码方式的字符时,触发第一编码单元502;在短信中存在以美国国家标准资讯交换码ASCII码编码方式的字符时,触发第二编码单元503;
第一编码单元502,用于将所述短信中以Unicode方式编码的字符转换成以9比特编码方式编码的字符;
第二编码单元503,用于将所述短信中ASCII方式编码的字符转换成以9比特编码方式编码的字符。
该终端的运行原理如下:
当短信中是否存在以通用字符集Unicode方式编码的字符时,判断单元501判断所述短信中的字符为Unicode方式编码的字符还是以美国国家标准资讯交换码ASCII方式编码的字符,并在所述字符为Unicode编码方式的字符时,触发第一编码单元502,由第一编码单元502将所述短信中以Unicode方式编码的字符转换成以9比特编码方式编码的字符;当判断单元501判断出所述字符为ASCII方式编码的字符时,触发第二编码单元503,由第二编码单元503将所述短信中ASCII方式编码的字符转换成以9比特编码方式编码的字符。
可见,在利用该终端编辑短信时,当短信中存在Unicode字符时,该终端将短信中的以Unicode方式编码的字符和以ASCII方式编码的字符都转换为9bit编码方式编码的字符,由于ASCII方式为7bit编码方式,而Unicode方式为16bit编码方式,通过将短信中存在的16bit编码方式的字符和7bit编码方式的字符重新编码为9bit编码方式的字符,当短信中存在16bit编码方式的字符时,就不需要将7bit编码方式字符转换成为16bit编码方式的字符,因此,可以增加一条短信所能发送的最大字符数,因而可以提高资源利用率。
根据需要,所述第一编码单元502和第二编码单元503可以采用不同的编码转换方式,例如,所述第一编码单元502可以用于:
将所述以Unicode方式编码的字符拆分为2个8比特数据,并为每个拆分后的8比特数据分别扩展1比特作为第一标志位。
而所述第二编码单元503可以用于:
将所述短信中以ASCII方式编码的字符扩充为8比特字符,并为扩展后的8比特字符扩展1比特作为第二标志位。
在具体实施中,可以对上述终端作进一步的优化,以下通过具体的实施例进行说明:
参照图6,为本发明实施例六中终端结构示意图,为了增强短信安全性能,在上述终端基础上,扩展加密单元601,用于在转换成9比特编码方式的字符后,利用存储所述短信中9比特编码方式的最大字符数后所剩余的比特,采用预设的加密算法对转换后的字符进行加密。
可以理解的是,所述终端上还可以集成对应的解码单元,用于识别所接收到的9bit编码方式的短信。具体为,所述终端还可包括:获取单元,第一解码单元、第二解码单元,其中:
获取单元,用于获取采用9比特编码方式的短信;
第一解码单元,用于将所述短信中由Unicode编码字符转换的9比特字符,转换成Unicode方式编码的字符;
第二解码单元,用于将所述短信中由ASCII编码字符转换的9比特字符,转换成ASCII编码方式编码的字符。
以下介绍另一种终端,该终端能够识别上述终端所发出的9bit编码方式的短信。
参照图7,为本发明实施例七中终端结构示意图,该终端包括:获取单元701,第一解码单元702、第二解码单元703,其中:
获取单元701,用于获取采用9比特编码方式的短信;
第一解码单元702,用于将所述短信中由Unicode编码字符转换的9比特字符,转换成Unicode方式编码的字符;
第二解码单元703,用于将所述短信中由ASCII编码字符转换的9比特字符,转换成ASCII编码方式编码的字符。
该终端运行原理如下:
获取单元701获取到采用9bit编码方式的短信,由第一解码单元702将所述短信中由Unicode编码字符转换的9bit字符,转换成Unicode方式编码的字符;由第二解码单元703将所述短信中由ASCII编码字符转换的9bit字符,转换成ASCII编码方式编码的字符。
具体的,所述第一解码单元702可以用于连续取2个含有第一标志位的9比特字符,并丢弃第一标志位后合并成一个字符,所述第一标志位用于标识所述9比特字符转换前为Unicode编码字符。
所述第二解码单元703可以用于取1个含有第二标志位的9比特字符,并丢弃第二标志位和扩展位。
参照图8,为本发明实施例8中终端结构示意图,当接收到的短信进行了加密时,在上述终端基础上,还可扩展解密单元801,用于在转换字符之前对获取的采用9比特编码方式的短信以预设的解密算法解密。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
当短信中存在以通用字符集Unicode方式编码的字符时,判断所述短信中的字符为Unicode方式的编码字符还是以美国国家标准资讯交换码ASCII方式编码的字符;
将所述以Unicode方式编码的字符转换成以9比特编码方式编码的字符;
将所述短信中以ASCII方式编码的字符转换成以9比特编码方式编码的字符。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种短信编、解码方法和设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。