2008-06-22
Java Unicode UTF
UTF是 Unicode Translation Format,即把Unicode转做某种格式的意思。 在Unicode基本多文种平面定义的字符(无论是拉丁字母、汉字或其他文字或符号),一律使用2字节储存。而在辅助平面定义的字符,会以代理对(surrogate pair)的形式,以两个2字节的值来储存。
unicode是一种编码方式,和ascii是同一个概念,而UTF是一种存储方式(格式)。
在jvm内部,虚拟机管理数据(内存里)时,或者在进行对象序列化的时候,字符(串)都是以unicode编码方式的。
但是在jvm中,字符(串)是以char 这种(存储)形式存放的,一个char占2个字节(例如可以定义char c='字'),就是“字”和“Z”是同样占2个字节的;而在对象序列化后,对象是进行UTF-8存储的,一个中文占2个字节,而英文、数字等只占一个字节,可以参看下面的链接。
所以导致系列化以后的对象只占平时的大约一半的空间(当全是中文时占用相同的空间;全是英文时unicode占用的空间是UTF-8的2倍)。
UTF-16比起UTF-8,好处在于大部分字符都以固定长度的字节 (2字节) 储存,但UTF-16却无法兼容于ASCII编码。
我的理解就是这样的
发表评论
- 浏览: 20317 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
我的相册
1111
共 2 张
共 2 张
最近加入圈子
最新评论
-
菜鸟和高手的区别
学SQL之前还是应该看看数据库基础吧
-- by 王者之剑 -
买显卡,郁闷啊
显卡这东西, 真是更新最快的。如果不玩游戏, amd未来的cpu集成显卡就很超值 ...
-- by spiritfrog -
买显卡,郁闷啊
有钱人 啊
-- by wf_chn -
这几天一直在面试,刚刚做 ...
题目都每贴出来,别人怎么看
-- by lanxia39 -
软件外包还能挺多久?
中国是有软件行业协会的,只不过它是政府下属的一个机构而已。要是行业的民间自己搞协 ...
-- by robbin






评论排行榜