下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 UTF-8到Unicode的编码转换.doc

UTF-8到Unicode的编码转换.doc.doc

UTF-8到Unicode的编码转换.doc

yang在丽
2018-04-13 0人阅读 举报 0 0 暂无简介

简介:本文档为《UTF-8到Unicode的编码转换.docdoc》,可适用于综合领域

到Unicode的编码转换doc就是UnicodeTransformationFormat是Unicode的一种变换编码格式。有以下特性:UCS字符U到UF(ASCII)被编码为字节x到xF(ASCII兼容)这意味着只包含位ASCII字符的文件在ASCII和两种编码方式下是一样的所有>UF的UCS字符被编码为一个多个字节的串,每个字节都有标记位集因此,ASCII字节(xxF)不可能作为任何其他字符的一部分表示非ASCII字符的多字节串的第一个字节总是在xC到xFD的范围里,并指出这个字符包含多少个字节多字节串的其余字节都在x到xBF范围里这使得重新同步非常容易,并使编码无国界,且很少受丢失字节的影响可以编入所有可能的个UCS代码编码字符理论上可以最多到个字节长,然而位BMP字符最多只用到字节长BigendianUCS字节串的排列顺序是预定的字节xFE和xFF在编码中从未用到下列字节串用来表示一个字符用到哪个串取决于该字符在Unicode中的序号UUF:xxxxxxxUUFF:xxxxxxxxxxxUUFFFF:xxxxxxxxxxxxxxxxUUFFFFF:xxxxxxxxxxxxxxxxxxxxxUUFFFFFF:xxxxxxxxxxxxxxxxxxxxxxxxxxUUFFFFFFF:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx从上表还可以看出每个编码字符都不可能以“”开头“”是以连接符的形式出现在后面的编码字节开头。因此编码在存储和传输时是不容易出错的。下面是到Unicode的编码转换代码(JME环境下的实现):CUniC方法包含了编码转换逻辑。***将字节数据转化为Unicode字符串*paramdatabyte编码字节数组*paramlenint字节数组长度*returnString变换后的Unicode编码字符串*publicstaticStringUni(bytedata,intlen){StringBufferunis=newStringBuffer()charunic=intptr=intcntBits=for(ptr<len){cntBits=getCntBits(dataptr)if(cntBits==){ptrcontinue}elseif(cntBits==){unic=CUniC(data,ptr,cntBits)ptr}else{unic=CUniC(data,ptr,cntBits)ptr=cntBits}unisappend(unic)}returnunistoString()}***将指定的字节组合成一个Unicode编码字符*parambyte字节数组*paramsptrint编码字节起始位置*paramcntBitsint编码字节数*returnchar变换后的Unicode字符*publicstaticcharCUniC(byte,intsptr,intcntBits){*Unicode<>UUF:xxxxxxxUUFF:xxxxxxxxxxxUUFFFF:xxxxxxxxxxxxxxxxUUFFFFF:xxxxxxxxxxxxxxxxxxxxxUUFFFFFF:xxxxxxxxxxxxxxxxxxxxxxxxxxUUFFFFFFF:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*intuniC=representtheunicodecharbytefirstByte=sptrintptr=pointer~resolvesinglebyteencodingcharif(cntBits==)return(char)firstByteresolvethefirstbytefirstByte=(<<(cntBits))resolvemultiplebytesencodingchar(exceptthefirstbyte)for(inti=sptrcntBitsi>sptri){byteb=iuniC|=(bxf)<<ptrptr=}uniC|=firstByte<<ptrreturn(char)uniC}根据给定字节计算编码的一个字符所占字节数规则定义字节标记只能为或~privatestaticintgetCntBits(byteb){intcnt=if(b==)returnfor(inti=i>=i){if(((b>>i)x)==)cntelsebreak}return(cnt>||cnt==):cnt}参考资料:《andUnicodeFAQ》

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/6

UTF-8到Unicode的编码转换&#46;doc

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利