首页 养生问答 疾病百科 养生资讯 女性养生 男性养生

Unicode与UTF-8/UTF-16之间有啥联系或区别?

发布网友 发布时间:2022-04-23 05:46

我来回答

1个回答

热心网友 时间:2022-04-22 07:48

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编码。

参考资料:http://blog.csdn.net/snake_jixi/archive/2006/04/28/694516.aspx

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com