9.关于Unicode字符集

9.关于Unicode字符集原文链接 http blog csdn net yang3wei article details 点击阅读原文 1 Java nbsp 中 char 占两个字节 既可以表示中文字符 也可以表示英文字符 2 Unicode 只是一个编码规范 目前实际实现的 unicode 编码只要有三种 UTF 8

原文链接:http://blog.csdn.net/yang3wei/article/details/

点击阅读原文

————————————-

1)Java 中 char 占两个字节,既可以表示中文字符,也可以表示英文字符

2)Unicode只是一个编码规范,目前实际实现的unicode编码只要有三种:UTF-8, UCS-2 和 UTF-16

3)UCS-2 是固定长度为 16 位的 unicode 字符集。每个字符都是 2 个字节,UCS-2 只支持 unicode3.0,所以不支持附加字符

4)Unix 平台中普遍支持 UTF-8 字符集,HTML 和大多数浏览器也支持 UTF-8,而 windows 和 java 则支持 UCS-2

5)UTF-8 中汉字一般占三个字节,譬如说,1110xxxx 10yyyyyy 10zzzzzz,除去控制字符,实际上就只占两个字节 xxxxyyyy yyzzzzzz

最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符。显然,这样要表示各种语言中所有的字符是远远不够的。Unicode4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用2个16位来表示,这样最多可以定义个附加字符,目前unicode4.0只定义了45960个附加字符。

Unicode只是一个编码规范,目前实际实现的unicode编码只要有三种:UTF-8,UCS-2和UTF-16,三种unicode字符集之间可以按照规范进行转换。

UTF-8

UTF-8是一种8位的unicode字符集,编码长度是可变的,并且是ASCII字符集的严格超集,也就是说ASCII中每个字符的编码在UTF-8中是完全一样的。UTF-8字符集中,一个字符可能是1个字节,2个字节,3个字节或者4个字节长。一般来说,欧洲的字母字符长度为1到2个字节,而亚洲的大部分字符则是3个字节,附加字符为4个字节长。

Unix平台中普遍支持UTF-8字符集,HTML和大多数浏览器也支持UTF-8,而window和java则支持UCS-2。

UTF-8的主要优点:

  • 对于欧洲字母字符需要较少的存储空间。
  • 容易从ASCII字符集向UTF-8迁移。

UCS-2

UCS-2是固定长度为16位的unicode字符集。每个字符都是2个字节,UCS-2只支持unicode3.0,所以不支持附加字符。

UCS-2的优点:

  • 对于亚洲字符的存储空间需求比UTF-8少,因为每个字符都是2个字节。
  • 处理字符的速度比UTF-8更快,因为是固定长度编码的。
  • 对于windows和java的支持更好。

UTF-16

UTF-16也是一种16位编码的字符集。实际上,UTF-16就是UCS-2加上附加字符的支持,也就是符合unicode4.0规范的UCS-2。所以UTF-16是UCS-2的严格超集。

UTF-16中的字符,要么是2个字节,要么是4个字节表示的。UTF-16主要在windows2000以上版本使用。

UTF-16相对UTF-8的优点,和UCS-2是一致的。

Oracle从7.0开始提供对Unicode的支持。Oracle个版本的unicode字符集支主要有:

AL32UTF8

一种UTF-8编码的字符集,支持最新的unicode4.0标准。字符长度为1,2或者3个字节,附加字符则为4字节长。

UTF8

支持unicode3.0的UTF-8编码方式。由于附加字符是在unicode3.1中提出的,UTF8不支持附加字符。但是unicode3.0已经为附加字符预留了编码空间,所以即使在UTF8的数据库中插入附加字符,也是可以的,只是数据库会将该字符分隔成两部分,需要占6个字符的长度。所以,如果需要支持附加字符,那么建议将数据库的字符集切换为新的AL32UTF8。

UTF8可用于数据库字符集,也可用于国家字符集。

UTFE

UTFE是基于EBCDIC平台的unicode字符集,就像ASCII平台上的UTF8一样。不同的是,UTFE中,每个字符可能占1,2,3或者4个字节,而附加字符则需要2个4个字节,也就是8个字节来表示。

AL16UTF16

AL16UTF16是一种UTF-16编码的unicode字符集,在Oracle中用于国家字符集。

AL24UTFFSS

该字符集只支持unicode1.1规范,在Oracle7.2~8i版本中使用,目前已经淘汰。

————-

更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209134.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午9:57
下一篇 2026年3月19日 上午9:57


相关推荐

  • Android service ( 一 ) 三种开启服务方法

    Android service ( 一 ) 三种开启服务方法一、Service简介Service是android系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activ

    2022年7月4日
    24
  • JAVA游戏开发-超炫酷贪吃蛇游戏源码及教程

    JAVA游戏开发-超炫酷贪吃蛇游戏源码及教程一.前言某日,看见隔壁家的小朋友在玩一款网络爆款贪吃蛇游戏,感觉很好玩。自己刚好正在学习JAVA编程,也想实现一个类似功能的游戏Demo练手,在网上查看了不少源码案例,全都是很古老的方块式贪吃蛇游戏案例,没有想要的实现,因此自己动手实现一个JAVA版的贪吃蛇游戏。我在这个Dome完成之后重写了这个游戏的Android版,并重新更名为《蛇王传说》。也欢迎大家下载试玩。游戏下载地址:https…

    2022年7月7日
    23
  • C#接口知识大全收藏建议收藏

    第一节接口慨述接口(interface)用来定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语言的限制(理论上)。接口可以从多个基接口继承,而类或结构可

    2021年12月21日
    40
  • 理解AI智能体思考过程:AI Agents From Scratch中的ReAct模式解析

    理解AI智能体思考过程:AI Agents From Scratch中的ReAct模式解析

    2026年3月15日
    2
  • vscode前端常用插件

    vscode前端常用插件vscode前端差用插件

    2022年7月25日
    15
  • 修改ubuntu上的pycharm镜像源,详细步骤

    修改ubuntu上的pycharm镜像源,详细步骤毕竟用官方的链接下载简直像个蜗牛一样 等得不耐烦 于是我就去用了清华镜像源 不废话了 上步骤 第一个配置 第一步 files setting 就是进入设置的意思 第二步 找到 project 这里 双击右边其中一个模块进入第三步 点击 ManageReposi 第四步 点击左下角像个笔的那个图标在这个方框输入镜像源地址 点击 ok 就行 我已经设置好了在这里我多介绍几个镜像源 根据自己喜好选择吧 个人偏向清华的 清华 https pypi tuna tsinghua edu

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号