字符编码转换.doc

字符编码转换.doc

ID:57755090

大小:39.00 KB

页数:2页

时间:2020-09-02

字符编码转换.doc_第1页
字符编码转换.doc_第2页
资源描述:

《字符编码转换.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Gbk码位图Gb18030码位图Unicode编码UTF-8编码(二进制)U+0000–U+007F0xxxxxxxU+0080–U+07FF110xxxxx10xxxxxxU+0800–U+FFFF1110xxxx10xxxxxx10xxxxxxU+10000–U+10FFFF11110xxx10xxxxxx10xxxxxx10xxxxxxUnicode编码UTF-16编码(二进制)U+0000–U+FFFF0x1234对应的16位unsignedint0x1234U+0x10000-U+10FFFFyyyyyyyyyyxxxxxxxxxx各种编码之间转换的基本原理:以unicod

2、e码值为中间载体,被转换的字符先根据其原来的编码规则,解码出对应的unicode值,然后,根据unicode值在转换成目标编码。由此,就需要不同编码码值和unicode的对应关系,目前gbk和unicode之间的对应关系由查表得到,gb18030和unicode的对应关系一部分查表,一部分通过计算可得。1.gbktoutf8gbk两个字节表示一个字符,根据gbk与unicode对应关系,得到该字符的unicode值,得到unicode值之后,根据utf8的编码规则,判断unicode值范围,确定用来编码的字节数,确定字节数后,由utf8的编码规则分别填充每个字节;例子:‘破’的gbk

3、编码为0xc6c6,两个字节分别为0xc6和0xc6,根据gbk与unicode对应关系查表得到‘破’的unicode值为0x7834;根据utf8编码规则,0x7834位于U+0800–U+FFFF区间,所以需要三个字节,且编码后形式为1110xxxx10xxxxxx10xxxxxx,0x7834对应的二进制位0111100000110100,将此二进制从左到右填充x,就得到后‘破’的utf8编码,也就是0xE70xA00xB4三个字节。1.utf8togbkutf8变长字节编码,根据utf8的编码规则,根据收到的第一个字节大小判断构成该字符的字节数num,分别判断从当前字节起的n

4、um个字节是否符合utf8编码规则,不符合做出错处理;符合utf8的规则后,开始解码为unicode值,解码的操作就按照编码返回来,得到unicode码值后,查表就可以得到对应的gbk编码字节。例子:‘破’的utf8编码值为0xE70xA00xB4三个字节,对应的二进制为,按照utf8的编码规则,着色部分组合到一起为对应的unicode值,于是得到unicode值10100,0x7834,查表得到0x7834对应的gbk码值0xc6c6,这样转换后的gbk编码就是0xc6,0xc6两个字节。3.gb18030toutf8gb18030变长编码,1、2、4个字节;对收到的gb18030

5、编码数据先根据第一个字节确定几个字节构成的字符,如果<0x7f,则为一个字节;否则为2或4个字节,接下来判断第二个字节的范围,若第二个字节在407E或者80FE之间,则为二个字节;否则为四个字节。确定字节后,开始寻找对应的unicode值,18030与gbk不同的是,不同字节数确定unicode的方法不同,2字节的与gbk一样(个别不一致),4字节的一部分需要查表(0x~0x8439FE39),4字节的其余可根据公式算出(0x~0xE339FE39)。假设某字符的gb18030编码为四个字节0x910x310x840x36,根据范围,此四个字节需要通过公式计算,计算公式为(0x91-

6、0x90)*12600+(0x31-0x30)*1260+(0x84-0x81)*10+(0x36-0x30)=0x3648,即unicode值。得到unicode值后,按照utf8编码可得到对应的utf8字节。4.utf8togb18030utf8转换unicode值在2里面以介绍,得到unicode之后,判断unicode值落在的区间,如果unicode值在0x0000-0xFFFF之间,则通过查表可得到对应的gb18030码值;若大于0xFFFF,则u=unicode-0x10000,根据以下公式得到对应的gb18030码值。U=Unicode编码-0x10000m1=U/12

7、600n1=U%12600m2=n1/1260n2=n1%1260m3=n2/10n3=n2%10第一字节b1=m1+0x90,第二字节b2=m2+0x30,第三字节b3=m3+0x81第四字节b4=n3+0x30

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。