字节UTF到Unicode的编码转换(DOC X页)

unicode编码转换  时间:2021-04-12  阅读:()

UTF-8就是Unicode Transformation Format-8是Unicode的一种变换编码格式。

UTF-8有以下特性:

UCS字符U+0000到U+007F(ASCII)被编码为字节0x00到0x7F(ASCII兼容).这意味着只包含7位ASCII字符的文件在ASCII和UTF-8两种编码方式下是一样的.

所有>U+007F的UCS字符被编码为一个多个字节的串,每个字节都有标记位集.因此,ASCII字节(0x00-0x7F)不可能作为任何其他字符的一部分.

表示非ASCII字符的多字节串的第一个字节总是在0xC0到0xFD的范围里,并指出这个字符包含多少个字节.多字节串的其余字节都在0x80到0 xBF范围里.这使得重新同步非常容易,并使编码无国界,且很少受丢失字节的影响.

可以编入所有可能的231个UC S代码

UTF-8编码字符理论上可以最多到6个字节长,然而16位B MP字符最多只用到3字节长.

Bigendian UCS-4字节串的排列顺序是预定的.

字节0xFE和0xFF在UTF-8编码中从未用到.

下列字节串用来表示一个字符.用到哪个串取决于该字符在Unicode中的序号.

U-00000000 - U-0000007F: 0xxxxxxx

U-00000080 - U-000007FF: 110xxxxx 10xxxxxx

U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx

U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx10xxxxxx从上表还可以看出 UTF-8每个编码字符都不可能以“10”开头 “10”是以连接符的形式出现在后面的编码字节开头。因此UTF-8编码在存储和传输时是不容易出错的。

下面是UTF-8到Unicode的编码转换代码(J2 ME环境下的实现)UTFC2UniC方法包含了编码转换逻辑。/**

*将UTF-8字节数据转化为Unicode字符串

*@p aram ut f_data b yte[] -U TF-8编码字节数组

*@param len int -字节数组长度

*@return String-变换后的Unicode编码字符串

*/pub lic static String UTF2Uni(byte[]utf_data, int len){

StringBuffer unis=new StringBuffer();char unic=0;int ptr=0;int c ntB its=0;fo r(;p tr<len;)

{cntB its=getC ntB its(ut f_da ta[ptr]);if(c ntB its==-1)

{

++ptr;c o nt inue;

}elseif(c ntB its==0)

{unic=UTFC2UniC(utf_data,ptr,cntB its);

++ptr;

}else

{unic=UTFC2UniC(utf_data,ptr,cntB its);ptr+=cntBits;

}unis.appe nd(unic);

}return unis.to S tring();

}

/**

*将指定的UTF-8字节组合成一个Unicode编码字符

*@p aram ut f b yte[] -UTF-8字节数组

*@param sptr int -编码字节起始位置

*@param cntB its int -编码字节数

*@return char-变换后的Unicode字符

*/pub lic static char UTFC2UniC(byte[]utf, int sptr, int cntBits)

{

/*

Unicode<->UTF-8

U-00000000-U-0000007F: 0 xxxxxxx

U-00000080-U-000007FF: 110xxxxx 10 xxxxxx

U-00000800-U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx

U-00010000-U-001 FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

U-00200000-U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

U-04000000-U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

*/int uniC=0; // repre sent the unicode charbyte firstByte=utf[sptr];int ptr=0; // po inter 0~15

//resolve single byte UTF-8 encoding charif(c ntB its==0)return(c har)fir stByte;

//re so lve the first bytefirs tB yte&=(1<<(7-c nt B its)) - 1;

//resolve multiple bytes UTF-8 encoding char(except the first byte)fo r(int i=sptr+c ntB its - 1; i>sp tr; --i)

{byte utfb=utf[i];uniC|=(utfb&0x3 f)<<ptr;ptr+=6;

}uniC|=fir stB yte<<p tr;return(c har)uniC;

}

//根据给定字节计算UTF-8编码的一个字符所占字节数

//UTF-8规则定义字节标记只能为0或2~6

private static int getCntBits(byte b)

{int cnt=0;i f(b==0)re t ur n-1;for(int i=7; i>=0; --i)

{if(((b>>i)&0x1)==1)

++cnt;elseb re ak;

}return(cnt>6| |cnt==1)?-1 :cnt;

}

参考资料

《UTF-8 and Unicode FAQ》——http://www.linuxforum.net/books/UTF-8-Unicode.html

俄罗斯vps主机推荐,怎么样俄罗斯vps俄罗斯vps速度怎么样?

俄罗斯vps速度怎么样?俄罗斯vps云主机节点是欧洲十大节点之一,地处俄罗斯首都莫斯科,网络带宽辐射周边欧洲大陆,10G专线连通德国法兰克福、法国巴黎、意大利米兰等,向外连接全球。俄罗斯vps云主机速度快吗、延迟多少?由于俄罗斯数据中心出口带宽充足,俄罗斯vps云主机到全球各地的延迟、速度相对来说都不错。今天,云服务器网(yuntue.com)小编介绍一下俄罗斯vps速度及俄罗斯vps主机推荐!俄...

老周互联24小时无理由退款,香港原生IP,28元起

老周互联怎么样?老周互联隶属于老周网络科技部旗下,创立于2019年12月份,是一家具有代表性的国人商家。目前主营的产品有云服务器,裸金属服务器。创办一年多以来,我们一直坚持以口碑至上,服务宗旨为理念,为用户提供7*24小时的轮班服务,目前已有上千多家中小型站长选择我们!服务宗旨:老周互联提供7*24小时轮流值班客服,用户24小时内咨询问题可提交工单,我们会在30分钟内为您快速解答!另免费部署服务器...

VoLLcloud(月付低至2.8刀)香港vps大带宽,三网直连

VoLLcloud LLC是一家成立于2020年12月互联网服务提供商企业,于2021年1月份投入云计算应用服务,为广大用户群体提供云服务平台,已经多个数据中心部署云计算中心,其中包括亚洲、美国、欧洲等地区,拥有自己的研发和技术服务团队。现七夕将至,VoLLcloud LLC 推出亚洲地区(香港)所有产品7折优惠,该产品为CMI线路,去程三网163,回程三网CMI线路,默认赠送 2G DDoS/C...

unicode编码转换为你推荐
支持ipad支付宝蜻蜓发布刷脸支付加盟,支付宝蜻蜓刷脸设备出后,微信也出了青蛙刷脸设备,感觉很有前景,大伙觉得呢?重庆电信断网这几天为什么重庆电信的网络总是这么不稳定字节跳动回应TikTok易主一部电影讲一个小伙子去继承遗产结果是一批雪橇狗男主吹口哨声明不是雪地狂奔asp.net网页制作ASP.NET设计网页的方法?sns网站有哪些中国都有哪些sns网站?还有它们都是哪个类型的?govya抢米网抢小米手机需要下什么软件 速求刚刚网刚刚在网上认识了一个女孩子,不是很了解她,就跟她表白了。什么是通配符什么是模糊查询?
已备案域名注册 欧洲欧洲vps 购买域名和空间 天猫双十一秒杀 泉州电信 美国免费空间 免费测手机号 umax120 ftp免费空间 100mbps metalink 台湾谷歌 godaddy空间 xshell5注册码 accountsuspended forwarder 认证机构 卡巴斯基官方下载 let 天鹰抗ddos防火墙 更多