首页 > 编程语言 > 详细

java中的char中unicode和utf的关系

时间:2015-05-20 08:12:54      阅读:136      评论:0      收藏:0      [点我收藏+]

char是Java的基础类型(原类型 ),是字符类型。在Java中字符是基于Unicode编码的,所以一个Java的字符占2个字节,字符的内容存的是unicode的码值(二进制数字)。问题来了,程序是怎么把unicode的码值转换为我们要的程序数据?例如:汉字的‘汉‘对应的unicode码值为:0x6C49。我们想要的程序数据为‘汉‘,而计算机存储的为码值。如何把码值‘0x6c49’显示为‘字’,需要一个转换过程。 这个转换过程需要一个转换规则。转换规则的书面写法为UTF(UCS Transformation Format) ,现在有的转换规则有utf-8,utf-16,utf-32。

现在我们通常用的转换规则为utf-8,其转换规则如下;

Unicode编码(十六进制) UTF-8 字节流(二进制)
000000 - 00007F           0xxxxxxx
000080 - 0007FF          110xxxxx 10xxxxxx
000800 - 00FFFF          1110xxxx 10xxxxxx 10xxxxxx
010000 - 10FFFF          11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
 

 

“汉”字的Unicode编码是0x6C49。0x6C49在0x0800-0xFFFF之间,使用用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将0x6C49写成二进制是:0110 1100 0100 1001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。

java的虚拟机默认的转换规则为utf-8;

java中的char中unicode和utf的关系

原文:http://www.cnblogs.com/eyyzx678/p/4516221.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!