CN101655836B - 转换utf-8编码、gb2312编码的嵌入式终端及其utf-8、gb2312编码转换方法 - Google Patents
转换utf-8编码、gb2312编码的嵌入式终端及其utf-8、gb2312编码转换方法 Download PDFInfo
- Publication number
- CN101655836B CN101655836B CN2009101921031A CN200910192103A CN101655836B CN 101655836 B CN101655836 B CN 101655836B CN 2009101921031 A CN2009101921031 A CN 2009101921031A CN 200910192103 A CN200910192103 A CN 200910192103A CN 101655836 B CN101655836 B CN 101655836B
- Authority
- CN
- China
- Prior art keywords
- coded character
- utf
- unicode
- byte
- character
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种嵌入式终端及其UTF-8、GB2312编码转换方法,所述基于嵌入式移动终端的GB2312编码转换为UTF-8编码的方法,包括:接收来自应用程序的将GB2312编码转换为UTF-8编码的请求;根据所述请求读取所述嵌入式移动终端中的GB2312编码字符;将所述读取的GB2312编码字符转换为unicode编码字符;将所述转换来unicode编码字符直接转换为UTF-8编码字符;返回所述转换得到UTF-8编码字符的结果给所述应用程序。本发明在没有操作系统windows或linux的环境下,也没有其它API可用的情况下,能够解决嵌入式移动终端与后台服务器之间通讯的字符处理问题。
Description
技术领域
本发明涉及电子技术领域,特别是涉及嵌入式移动终端及基于嵌入式移动终端的编码转换方法。
背景技术
UTF-8编码是用以解决国际上字符的一种多字节编码,它对英文使用一个字节,中文使用三个字节来编码。对于英文字符较多则用UTF-8节省空间。UTF-8编码的文字可以在各国各种支持UTF-8字符集的浏览器上显示。是目前服务器端主要采用的编码方式。
另外,GB2312码是我国公布的简体汉字编码方案,也称国标码,国标码对6763个汉字集进行了编码,涵盖了大多数正在使用的汉字。目前这两种编码在通信系统中都有比较广泛的应用。
GB2312是GBK的子集,GBK是GB18030的子集。GB2312、GBK到GB18030都属于双字节字符集(DBCS)。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
在Windows下进行UTF-8和GB2312相互转化可以使用两个Sindows函数(WideCharToMultiByte和MultiByteToWideChar);在Linux下也可以直接调用iconv库,实现UTF-8和GB2312相互转化也非常方便。相关的现有技术可参阅2005年2月9日公开的名称为“繁体中文字/简体中文字翻译方法”的中国发明专利申请第200410034357.8号,以及2009年4月8日公开的名称为“一种Unicode编码到GB2312编码转换方法”的中国发明专利申请第200810202969.1号等。
但是在存储空间有限和没有操作系统比如Windows或Linux的嵌入式移动终端中,也没有其它API可用的情况下,实现UTF-8和GB2312相互转化是比较困难的,导致嵌入式移动终端在一些应用场景中无法识别UTF-8或GB2312编码字符,从而不能正常工作。
发明内容
本发明主要解决的技术问题是提供一种转换UTF-8编码、GB2312编码的嵌入式终端及其UTF-8、GB2312编码转换方法,在没有操作系统windows或linux的环境下,也没有其它API可用的情况下,能够解决嵌入式移动终端中应用程序在一些情况下无法进行字符处理问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于嵌入式移动终端的GB2312编码转换为UTF-8编码的方法,包括:接收来自应用程序的将GB2312编码转换为UTF-8编码的请求;根据所述请求读取所述嵌入式移动终端中的GB2312编码字符;将所述读取的GB2312编码字符转换为unicode编码(统一码、万国码、单一码、标准万国码)字符;将所述转换来unicode编码字符直接转换为UTF-8编码字符;返回所述转换得到UTF-8编码字符的结果给所述应用程序。
其中,所述读取嵌入式移动终端中的GB2312编码字符的步骤包括:从嵌入式移动终端中读取一个字节的GB2312编码字符;所述将GB2312编码字符转换为unicode编码字符的步骤包括:将所述读取出来的GB2312编码字符与0x80比较;若读取出来的GB2312编码字符小于0x80,则将读取出来的GB2312编码字符作为所述unicode编码字符的高字节,将0x00作为所述unicode编码字符的低字节;若读取出来的GB2312编码字符等于0x80,则将0xAC作为所述unicode编码字符的高字节,将0x20作为所述unicode编码字符的低字节;若读取出来的GB2312编码字符大于0x80,则再进行从嵌入式移动终端中读取一个字节的GB2312编码字符的步骤,然后对所述分别读取的两字节GB2312编码字符进行内容交换,再查所述GB2312编码与unicode编码对照表,对查得的unicode编码值进行两字节内容交换,得到所述转换得到的unicode编码字符;在得到所述unicode编码字符后,重新开始读取所述嵌入式移动终端中的GB2312编码字符的步骤直至读取结束。
其中,所述查GB2312编码与unicode编码对照表的步骤包括:通过二分法查GB2312编码与unicode编码对照表。
其中,将所述转换来unicode编码字符直接转换为UTF-8编码字符的步骤包括:读取所述转换得到的两字节unicode编码字符;将所述读取得到的两字节unicode编码字符中低字节与0x00比较;若读取出来的低字节字符等于0x00,则将所述两字节unicode编码字符中高字节作为UTF-8编码字符;若读取出来的低字节字符大于0x00,则判断为所述UTF-8编码字符有三个字节,其中UTF-8编码字符最低字节为:0xE0|((unicode编码字符的低字节&0xF0)>>4),UTF-8编码字符第二字节为:0x80|((unicode编码字符的低字节&0x0F)<<2)+((unicode编码字符的高字节&0xC0)>>6),UTF-8编码字符第三字节为:0x80|(unicode编码字符的高字节&0x3F);在得到所述转换得到的UTF-8编码字符后,重新开始读取所述两字节unicode编码字符的步骤直至读取结束。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种基于嵌入式移动终端的UTF-8编码转换为GB2312编码的方法,包括:接收来自应用程序的将UTF-8编码转换为GB2312编码的请求;根据所述请求读取所述嵌入式移动终端中的UTF-8编码字符;将所述读取的UTF-8编码字符直接转换为unicode编码的字符;将所述转换来的unicode编码字符转换为GB2312编码字符;返回所述转换得到GB2312编码字符的结果给所述应用程序。
其中,所述读取嵌入式移动终端中的UTF-8编码字符的步骤包括:从嵌入式移动终端中读取一个字节的UTF-8编码字符;所述将UTF-8编码字符直接转换为unicode编码字符的步骤包括:将所述读取出来的UTF-8编码字符与0xE0比较;若读取出来的UTF-8编码字符小于0xE0,则将读取出来的UTF-8编码字符作为所述unicode编码字符的高字节,将0x00作为所述unicode编码字符的低字节;若读取出来的UTF-8编码字符大于0xE0,则判断为所述unicode编码字符有三个字节,再进行从嵌入式移动终端中读取两个字节的UTF-8编码字符的步骤,其中,转换得到的uni code编码字符中低字节为:(UTF-8编码字符第一个字节&0x0F)<<4)+((UTF-8编码字符第二个字节>>2)&0x0F,unicode编码字符中高字节为:(UTF-8编码字符第二个字节&0x03)<<6)+(UTF-8编码字符第三个字节&0x3F);在得到所述转换得到的unicode编码字符后,重新开始读取所述嵌入式移动终端中的UTF-8编码字符的步骤直至读取结束。
其中,将所述转换来的unicode编码字符直接转换为GB2312编码字符的步骤包括:读取所述转换得到的两字节unicode编码字符;设所述两字节unicode编码字符为A,A中低字节*256与A中高字节的和为B,将B与0x80作比较;若B小于0x80,则判断为所述GB2312编码字符是单字节字符,将A中高字节作为所述GB2312编码字符;若B大于0x80且等于0x20AC,则判断为所述GB2312编码字符是单字节字符,将0x80作为所述GB2312编码字符;若B大于0x80且不等于0x20AC,则判断为所述GB2312编码字符是双字节字符,先对所述unicode编码字符进行高低字节内容交换,再查GB2312编码与unicode编码对照表,对查得的GB2312编码字符进行两字节内容交换,得到所述转换得到的GB2312编码字符。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种转换UTF-8编码、GB2312编码的嵌入式移动终端,包括:请求接收单元,用于接收来自应用程序的将GB2312编码转换为UTF-8编码的请求;字符读取单元,用于根据所述请求读取所述嵌入式移动终端中的GB2312编码字符;第一转换单元,用于将所述读取的GB2312编码字符转换为unicode编码字符;第二转换单元,用于将所述转换来unicode编码字符直接转换为UTF-8编码字符;结果返回单元,用于返回所述转换得到UTF-8编码字符的结果给所述应用程序。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种转换UTF-8编码、GB2312编码的嵌入式移动终端,包括:请求接收单元,用于接收来自应用程序的将UTF-8编码转换为GB2312编码的请求;字符读取单元,用于根据所述请求读取所述嵌入式移动终端中的UTF-8编码字符;第三转换单元,用于将所述读取的UTF-8编码字符直接转换为unicode编码的字符;第四转换单元,用于将所述转换来的unicode编码字符转换为GB2312编码字符;结果返回单元,用于返回所述转换得到GB2312编码字符的结果给所述应用程序。
本发明的有益效果是:区别于现有技术嵌入式移动终端在存储空间有限、没有操作系统和其它API可用的情况下难以实现UTF-8和GB2312相互转化的情况,本发明在没有操作系统windows或linux的环境下,也没有其它API可用的情况下,简单巧妙地在嵌入式移动终端中利用unicode编码作为桥梁,利用unicode编码能够比较轻易地与UTF-8或GB2312编码进行转换的特点,进行UTF-8和GB2312编码之间的互换,能够解决嵌入式移动终端中应用程序在一些情况下无法进行字符处理问题,特别是能够解决嵌入式移动终端与后台服务器之间通讯的字符处理问题。
附图说明
图1是本发明基于嵌入式移动终端的GB2312编码转换为UTF-8编码的方法实施例一的流程图;
图2是本发明基于嵌入式移动终端的GB2312编码转换为UTF-8编码的方法实施例二的流程图;
图3是本发明基于嵌入式移动终端的UTF-8编码转换为GB2312编码的方法实施例一的流程图;
图4是本发明基于嵌入式移动终端的UTF-8编码转换为GB2312编码的方法实施例二的流程图;
图5是本发明嵌入式移动终端实施例一的原理框图;
图6是本发明嵌入式移动终端实施例二的原理框图。
具体实施方式
参阅图1,本发明基于嵌入式移动终端的GB2312编码转换为UTF-8编码的方法实施例一主要包括:
步骤101:接收来自应用程序的将GB2312编码转换为UTF-8编码的请求,比如接收移动终端与后台服务器之间通讯程序的请求;
步骤102:根据所述请求读取所述嵌入式移动终端中的GB2312编码字符;
步骤103:将所述读取的GB2312编码字符转换为unicode编码字符;
步骤104:将所述转换来unicode编码字符直接转换为UTF-8编码字符;
步骤105:返回所述转换得到UTF-8编码字符的结果给所述应用程序。
区别于现有技术嵌入式移动终端在存储空间有限、没有操作系统和其它API可用的情况下难以实现UTF-8和GB2312相互转化的情况,本发明在没有操作系统windows或linux的环境下,也没有其它API可用的情况下,简单巧妙地在嵌入式移动终端中利用unicode编码作为桥梁,利用unicode编码能够比较轻易地与UTF-8或GB2312编码进行转换的特点,在不占用太多资源的情况下能够解决嵌入式移动终端中应用程序在一些情况下无法进行字符处理问题,特别是能够解决嵌入式移动终端与后台服务器之间通讯的字符处理问题。
一起参阅图2,在另一实施例中,所述读取嵌入式移动终端中的GB2312编码字符的步骤包括:
A、从嵌入式移动终端中读取一个字节的GB2312编码字符;
B、所述将GB2312编码字符转换为unicode编码字符的步骤包括:
C、将所述读取出来的GB2312编码字符与0x80比较;
0x80是一个转折点,小于的话就是单字节字符,比如英文字母等,大于的话就是中文字了,等于的话就是一个特殊字符,因此:
若读取出来的GB2312编码字符小于0x80,则将读取出来的GB2312编码字符作为所述unicode编码字符的高字节,将0x00作为所述unicode编码字符的低字节;倒如:GB2312编码的“0x43”,则它的unicode编码为“0x4300”。
若读取出来的GB2312编码字符等于0x80,则将0xAC作为所述unicode编码字符的高字节,将0x20作为所述unicode编码字符的低字节;倒如:GB2312编码的“0x80”,则它的unicode编码为“0xAC20”。
若读取出来的GB2312编码字符大于0x80,则再进行从嵌入式移动终端中读取一个字节的GB2312编码字符的步骤,然后对所述分别读取的两字节GB2312编码字符进行内容交换,再查所述GB2312编码与unicode编码对照表,对查得的unicode编码值进行两字节内容交换,得到所述转换得到的unicode编码字符;
D、在得到所述unicode编码字符后,重新开始读取所述嵌入式移动终端中的GB2312编码字符的步骤直至读取结束。
其中,所述GB2312编码与unicode编码对照表可以预先下载,码表将GB2312按顺序放在前面,unicode放在后面。
所述查GB2312编码与unicode编码对照表的步骤可以是:通过二分法查GB2312编码与unicode编码对照表。
当然,步骤A中从嵌入式移动终端中读取一个字节的GB2312编码字符的步骤,可以替换为一次读取两个字符,如果最终unicode编码字符为一字节,那么另外一个字符作为下一循环转换之用,如果最终unicode编码字符为两字节,则不需要两次读取字符的动作,节省时间提高效率。当然,也可以一次读取多个字符,下面的实施例同理。
一起参阅图2,在另一实施例中,将所述转换来unicode编码字符直接转换为UTF-8编码字符的步骤包括:
A、读取所述转换得到的两字节unicode编码字符;
B、将所述读取得到的两字节unicode编码字符中低字节与0x00比较;
若读取出来的低字节字符等于0x00,则将所述两字节unicode编码字符中高字节作为UTF-8编码字符;
若读取出来的低字节字符大于0x00,则判断为所述UTF-8编码字符有三个字节,其中UTF-8编码字符最低字节为:0xE0|((unicode编码字符的低字节&0xF0)>>4),UTF-8编码字符第二字节为:0x80|((unicode编码字符的低字节&0x0F)<<2)+((unicode编码字符的高字节&0xC0)>>6),UTF-8编码字符第三字节为:0x80|(unicode编码字符的高字节&0x3F);
C、在得到所述转换得到的UTF-8编码字符后,重新开始读取所述两字节unicode编码字符的步骤直至读取结束。
上述实施例是描述GB2312编码转换为UTF-8编码的方法,以下描述UTF-8编码转换为GB2312编码的方法实施例。
参阅图3,比如,本发明提供的一种基于嵌入式移动终端的UTF-8编码转换为GB2312编码的方法实施例包括:
步骤301:接收来自应用程序的将UTF-8编码转换为GB2312编码的请求;
步骤302:根据所述请求读取所述嵌入式移动终端中的UTF-8编码字符;
步骤303:将所述读取的UTF-8编码字符直接转换为unicode编码的字符;
步骤304:将所述转换来的unicode编码字符转换为GB2312编码字符;
步骤305:返回所述转换得到GB2312编码字符的结果给所述应用程序。
上述实施例是在本发明同一构思下,将UTF-8编码转换为GB2312编码的实施例,其中利用了将GB2312编码转换为UTF-8编码的某些相同或相应的技术,两者一起使用即可以进行任意互换,同样解决嵌入式移动终端进行GB2312编码与UTF-8编码转换的问题。
一起参阅图4,而且,在其他实施例中,所述读取嵌入式移动终端中的UTF-8编码字符的步骤包括:
从嵌入式移动终端中读取一个字节的UTF-8编码字符;
所述将UTF-8编码字符直接转换为unicode编码字符的步骤包括:
A、将所述读取出来的UTF-8编码字符与0xE0比较;
若读取出来的UTF-8编码字符小于0xE0,则将读取出来的UTF-8编码字符作为所述unicode编码字符的高字节,将0x00作为所述unicode编码字符的低字节;倒如:UTF-8编码的“0x43”,则它的unicode编码为“0x4300”。
若读取出来的UTF-8编码字符大于0xE0,则判断为所述unicode编码字符有三个字节,再进行从嵌入式移动终端中读取两个字节的UTF-8编码字符的步骤,其中,转换得到的unicode编码字符中低字节为:(UTF-8编码字符第一个字节&0x0F)<<4)+((UTF-8编码字符第二个字节>>2)&0x0F,unicode编码字符中高字节为:(UTF-8编码字符第二个字节&0x03)<<6)+(UTF-8编码字符第三个字节&0x3F);
B、在得到所述转换得到的unicode编码字符后,重新开始读取所述嵌入式移动终端中的UTF-8编码字符的步骤直至读取结束。
一起参阅图4,另一方面,将所述转换来的unicode编码字符直接转换为GB2312编码字符的步骤包括:
A、读取所述转换得到的两字节unicode编码字符;
B、设所述两字节uni code编码字符为A,A中低字节*256与A中高字节的和为B,将B与0x80作比较;
若B小于0x80,则判断为所述GB2312编码字符是单字节字符,将A中高字节作为所述GB2312编码字符;
若B大于0x80且等于0x20AC,则判断为所述GB2312编码字符是单字节字符,将0x80作为所述GB2312编码字符;
若B大于0x80且不等于0x20AC,则判断为所述GB2312编码字符是双字节字符,先对所述unicode编码字符进行高低字节内容交换,再查GB2312编码与unicode编码对照表,对查得的GB2312编码字符进行两字节内容交换,得到所述转换得到的GB2312编码字符。
当然,也可以采用其他现有方式进行单个环节比如GB2312编码与unicode编码之间、UTF-8编码与unicode编码之间的编码转换,比如采用背景技术中提到的发明专利申请第200810202969号提供的一种Unicode编码到GB2312编码转换方法,但存在差别:1、该200810202969方法是通过计算偏移量差值再进行查表,而本发明实施例是直接进行查表;2、200810202969与本发明两者编码转换表不一样;3、该200810202969转换方法只能实现单向性,无法互换,但本发明实施例则可以实现双向编码转换。
参阅图5,根据本发明,还提供嵌入式移动终端实施例一,包括:
请求接收单元,用于接收来自应用程序的将GB2312编码转换为UTF-8编码的请求;
字符读取单元,用于根据所述请求读取所述嵌入式移动终端中的GB2312编码字符;
第一转换单元,用于将所述读取的GB2312编码字符转换为unicode编码字符;
第二转换单元,用于将所述转换来unicode编码字符直接转换为UTF-8编码字符;
结果返回单元,用于返回所述转换得到UTF-8编码字符的结果给所述应用程序。
上述嵌入式移动终端实施例一可以实现在无操作系统和其他API情况下将GB2312编码转换为UTF-8编码的功能。
参阅图6,根据本发明,还提供嵌入式移动终端实施例二,包括:
请求接收单元,用于接收来自应用程序的将UTF-8编码转换为GB2312编码的请求;
字符读取单元,用于根据所述请求读取所述嵌入式移动终端中的UTF-8编码字符;
第三转换单元,用于将所述读取的UTF-8编码字符直接转换为unicode编码的字符;
第四转换单元,用于将所述转换来的unicode编码字符转换为GB2312编码字符;
结果返回单元,用于返回所述转换得到GB2312编码字符的结果给所述应用程序。
以上,返回编码字符的结果给所述应用程序的含义,可以是直接返回转换后的最终编码字符给应用程序,也可以返回一个通知或消息,告诉应用程序编码转换已经完成。
上述嵌入式移动终端实施例二可以实现在无操作系统和其他API情况下将UTF-8编码转换为编码GB2312的功能。
当然,可以将上述嵌入式移动终端实施例一和嵌入式移动终端实施例二合二为一,实现任意双向转换功能。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种基于嵌入式移动终端的GB2312编码转换为UTF-8编码的方法,其特征在于,包括:
接收来自应用程序的将GB2312编码转换为UTF-8编码的请求;
根据所述请求读取所述嵌入式移动终端中的GB2312编码字符;
将所述读取的GB2312编码字符转换为unicode编码字符;
将所述转换来的unicode编码字符直接转换为UTF-8编码字符;
返回所述转换得到UTF-8编码字符的结果给所述应用程序;
其中,将所述转换来的unicode编码字符直接转换为UTF-8编码字符的步骤包括:
读取所述转换得到的两字节unicode编码字符;
将所述读取得到的两字节unicode编码字符中低字节与0x00比较;
若读取出来的低字节字符等于0x00,则将所述两字节unicode编码字符中高字节作为UTF-8编码字符;
若读取出来的低字节字符大于0x00,则判断为所述UTF-8编码字符有三个字节,其中UTF-8编码字符最低字节为:0xE0|((unicode编码字符的低字节&0xF0)>>4),UTF-8编码字符第二字节为:0x80|((unicode编码字符的低字节&0x0F)<<2)+((unicode编码字符的高字节&0xC0)>>6),UTF-8编码字符第三字节为:0x80|(unicode编码字符的高字节&0x3F);
在得到所述转换得到的UTF-8编码字符后,重新开始读取所述两字节unicode编码字符的步骤直至读取结束。
2.根据权利要求1所述的方法,其特征在于,
所述读取嵌入式移动终端中的GB2312编码字符的步骤包括:
从嵌入式移动终端中读取一个字节的GB2312编码字符;
所述将GB2312编码字符转换为unicode编码字符的步骤包括:
将所述读取出来的GB2312编码字符与0x80比较;
若读取出来的GB2312编码字符小于0x80,则将读取出来的GB2312编码字符作为所述unicode编码字符的高字节,将0x00作为所述unicode编码字符的低字节;
若读取出来的GB2312编码字符等于0x80,则将0xAC作为所述unicode编码字符的高字节,将0x20作为所述unicode编码字符的低字节;
若读取出来的GB2312编码字符大于0x80,则再进行从嵌入式移动终端中读取一个字节的GB2312编码字符的步骤,然后对所述分别读取的两字节GB2312编码字符进行内容交换,再查所述GB2312编码与unicode编码对照表,对查得的unicode编码值进行两字节内容交换,得到所述转换得到的unicode编码字符;
在得到所述unicode编码字符后,重新开始读取所述嵌入式移动终端中的GB2312编码字符的步骤直至读取结束。
3.根据权利要求2所述的方法,其特征在于,所述查GB2312编码与unicode编码对照表的步骤包括:
通过二分法查GB2312编码与unicode编码对照表。
4.一种基于嵌入式移动终端的UTF-8编码转换为GB2312编码的方法,其特征在于,包括:
接收来自应用程序的将UTF-8编码转换为GB2312编码的请求;
根据所述请求读取所述嵌入式移动终端中的UTF-8编码字符;
将所述读取的UTF-8编码字符直接转换为unicode编码的字符;
将所述转换来的unicode编码字符转换为GB2312编码字符;
返回所述转换得到GB2312编码字符的结果给所述应用程序;
其中,所述将UTF-8编码字符直接转换为unicode编码字符的步骤包括:
将所述读取出来的UTF-8编码字符与0xE0比较;
若读取出来的UTF-8编码字符小于0xE0,则将读取出来的UTF-8编码字符作为所述unicode编码字符的高字节,将0x00作为所述unicode编码字符的低字节;
若读取出来的UTF-8编码字符大于0xE0,则判断为所述unicode编码字符有三个字节,再进行从嵌入式移动终端中读取两个字节的UTF-8编码字符的步骤,其中,转换得到的uni code编码字符中低字节为:(UTF-8编码字符第一个字节&0x0F)<<4)+((UTF-8编码字符第二个字节>>2)&0x0F,unicode编码字符中高字节为:(UTF-8编码字符第二个字节&0x03)<<6)+(UTF-8编码字符第三个字节&0x3F);
在得到所述转换得到的unicode编码字符后,重新开始读取所述嵌入式移动终端中的UTF-8编码字符的步骤直至读取结束。
5.根据权利要求4所述的方法,其特征在于,将所述转换来的unicode编码字符直接转换为GB2312编码字符的步骤包括:
读取所述转换得到的两字节unicode编码字符;
设所述两字节unicode编码字符为A,A中低字节*256与A中高字节的和为B,将B与0x80作比较;
若B小于0x80,则判断为所述GB2312编码字符是单字节字符,将A中高字节作为所述GB2312编码字符;
若B大于0x80且等于0x20AC,则判断为所述GB2312编码字符是单字节字符,将0x80作为所述GB2312编码字符;
若B大于0x80且不等于0x20AC,则判断为所述GB2312编码字符是双字节字符,先对所述unicode编码字符进行高低字节内容交换,再查GB2312编码与unicode编码对照表,对查得的GB2312编码字符进行两字节内容交换,得到所述转换得到的GB2312编码字符。
6.一种基于嵌入式移动终端的GB2312编码转换为UTF-8编码的装置,其特征在于,包括:
请求接收单元,用于接收来自应用程序的将GB2312编码转换为UTF-8编码的请求的装置;
字符读取单元,用于根据所述请求读取所述嵌入式移动终端中的GB2312编码字符的装置;
第一转换单元,用于将所述读取的GB2312编码字符转换为unicode编码字符的装置;
第二转换单元,用于将所述转换来的unicode编码字符直接转换为UTF-8编码字符的装置;
结果返回单元,用于返回所述转换得到UTF-8编码字符的结果给所述应用程序的装置;
其中,所述的第二转换单元包含:
将读取得到的两字节unicode编码字符中低字节与0x00比较的比较装置;
根据所述的比较装置的比较结果,进行编码转换的装置,其包括:
将所述两字节unicode编码字符中高字节作为UTF-8编码字符的装置;
或将所述两字节unicode编码作以下变换以得到UTF-8编码字符的装置:0xE0|((unicode编码字符的低字节&0xF0)>>4)为UTF-8编码字符最低字节;0x80|((unicode编码字符的低字节&0x0F)<<2)+((unicode编码字符的高字节&0xC0)>>6)为UTF-8编码字符第二字节;0x80|(unicode编码字符的高字节&0x3F)为UTF-8编码字符第三字节。
7.一种基于嵌入式移动终端的UTF-8编码转换为GB2312编码的装置,其特征在于,包括:
请求接收单元,用于接收来自应用程序的将UTF-8编码转换为GB2312编码的请求的装置;
字符读取单元,用于根据所述请求读取所述嵌入式移动终端中的UTF-8编码字符的装置;
第三转换单元,用于将所述读取的UTF-8编码字符直接转换为unicode编码的字符的装置;
第四转换单元,用于将所述转换来的unicode编码字符转换为GB2312编码字符的装置;
结果返回单元,用于返回所述转换得到GB2312编码字符的结果给所述应用程序的装置;
所述的第三转换单元包含:
将所述读取出来的UTF-8编码字符与0xE0比较的比较装置;
根据所述的比较装置的比较结果来进行编码转换的装置,其包含:
将读取出来的UTF-8编码字符作为所述unicode编码字符的高字节,将0x00作为所述unicode编码字符的低字节的装置;
或再读取两个字节的UTF-8编码做以下变换得到unicode编码字符的装置:(UTF-8编码字符第一个字节&0x0F)<<4)+((UTF-8编码字符第二个字节>>2)&0x0F转换得到的为unicode编码字符中低字节;unicode编码字符中高字节为:(UTF-8编码字符第二个字节&0x03)<<6)+(UTF-8编码字符第三个字节&0x3F)转换得到的为unicode编码字符中高字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101921031A CN101655836B (zh) | 2009-09-03 | 2009-09-03 | 转换utf-8编码、gb2312编码的嵌入式终端及其utf-8、gb2312编码转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101921031A CN101655836B (zh) | 2009-09-03 | 2009-09-03 | 转换utf-8编码、gb2312编码的嵌入式终端及其utf-8、gb2312编码转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101655836A CN101655836A (zh) | 2010-02-24 |
CN101655836B true CN101655836B (zh) | 2011-06-08 |
Family
ID=41710129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101921031A Expired - Fee Related CN101655836B (zh) | 2009-09-03 | 2009-09-03 | 转换utf-8编码、gb2312编码的嵌入式终端及其utf-8、gb2312编码转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101655836B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262520B (zh) * | 2010-05-31 | 2014-04-02 | 北京创艺和弦科贸有限公司 | 基于内置式平台手机的文本显示方法及其应用的装置 |
CN102096662A (zh) * | 2010-12-06 | 2011-06-15 | 无敌科技(西安)有限公司 | 编码转换方法 |
CN102184095A (zh) * | 2011-01-30 | 2011-09-14 | 广东佳和通信技术有限公司 | 融合通信系统的中文显示系统及方法 |
CN102508824B (zh) * | 2011-09-29 | 2013-04-03 | 苏州大学 | 一种微博信息的压缩编码和解码的方法及装置 |
CN103488617A (zh) * | 2012-06-11 | 2014-01-01 | 北京新媒传信科技有限公司 | 一种数据截取的方法和装置 |
CN102801429B (zh) * | 2012-08-16 | 2015-03-04 | 福州大学 | 适用于gb18030的url中文参数压缩方法 |
CN102867132B (zh) * | 2012-10-16 | 2015-10-21 | 南京航空航天大学 | 基于分数阶小波变换的航空直流变换器在线故障组合预测方法 |
CN104750695A (zh) * | 2013-12-26 | 2015-07-01 | 深圳富泰宏精密工业有限公司 | 智能字库文件转码系统及方法 |
CN105243168B (zh) * | 2015-11-11 | 2019-08-30 | 中国建设银行股份有限公司 | 一种数据迁移方法及系统 |
CN106569939B (zh) * | 2016-10-28 | 2020-06-12 | 北京数科网维技术有限责任公司 | 一种控件脚本程序多国文字解析系统及多国文字解析方法 |
CN109446488A (zh) * | 2018-08-21 | 2019-03-08 | 深圳市华力特电气有限公司 | 一种数据处理方法和装置 |
CN113364761A (zh) * | 2021-06-02 | 2021-09-07 | 苏州科达科技股份有限公司 | 网络会议中参会设备的名称处理方法、设备及介质 |
CN113473467A (zh) * | 2021-08-03 | 2021-10-01 | 深圳市火火兔智慧科技有限公司 | Iot设备配网方法、装置、计算机设备及存储介质 |
-
2009
- 2009-09-03 CN CN2009101921031A patent/CN101655836B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101655836A (zh) | 2010-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101655836B (zh) | 转换utf-8编码、gb2312编码的嵌入式终端及其utf-8、gb2312编码转换方法 | |
CN100425081C (zh) | 短信收发的编码转换方法及其应用的网络设备 | |
CN102880703B (zh) | 中文网页数据编码、解码方法及系统 | |
CN101079889A (zh) | 数据传输系统及其传输方法 | |
CN101493901B (zh) | 一种二维码数据压缩、解压缩方法及终端 | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
CN104504342B (zh) | 基于Unicode编码利用不可见字符隐藏信息的方法 | |
EP2482231A1 (en) | Method for encoding and decoding data on a matrix code symbol | |
CN1848973B (zh) | 一种短消息群发的方法、终端及短消息中心 | |
CN101345952B (zh) | 客户身份识别卡的数据存储、读取方法、装置及系统 | |
CN105389606A (zh) | 一种基于开放标准的数据生成、解析方法及其装置和系统 | |
CN103605730A (zh) | 一种基于不定长标识码的xml的压缩方法和装置 | |
CN1192658C (zh) | 字符显示方法 | |
CN104360988A (zh) | 中文字符的编码方式的识别方法和装置 | |
CN102970661A (zh) | 一种对短消息进行编码转换的方法及装置 | |
CN101621771A (zh) | 短信编码处理方法、装置及系统 | |
CN1897579A (zh) | 邮件传输所需的多国语支持系统及方法 | |
CN104182286A (zh) | 一种跨平台汉字乱码恢复方法 | |
CN102843345B (zh) | 远程沟通方法及其计算机程序产品 | |
CN104917637A (zh) | 一种文件分享的方法及系统 | |
CN100440778C (zh) | 移动终端上运行的快速响应码识别装置和方法 | |
CN101420662A (zh) | 多媒体消息发送方法、处理方法和终端 | |
CN103167001A (zh) | 一种基于xml的网络数据传输方法 | |
CN101742441A (zh) | 压缩手机短信的通讯方法、短信发送终端和短信接收终端 | |
CN101465902B (zh) | 一种手机短信压缩通讯方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110608 Termination date: 20120903 |