当前位置: 首页 > news >正文

Java与Unicode

最早学习Java的时候,老师会告诉我们。

Java中的字符是用Unicode编码的。Unicode编码每个字符占两个字节。


老师说的对,但是介绍的并不够全面和准确。

简单点来说,Unicode编码系统分为编码和实现。


编码指的是,每个字符对应的Unicode码是唯一确定的,Unicode用两个字节表示一个字符。

Unicode的实现方式称为Unicode转换格式(Unicode Transformation Format,简称为UTF)。相信大家都应该知道utf-8,utf-16,utf-32等等的吧。

因为,在实际操作中(如:传输,存储),我们因为一些特殊的要求(提高性能)。对Unicode会有很多种实现方式。

举一个小小的例子

例如,如果一个仅包含基本7位ASCIII字符的Unicode文件,如果每个字符都使用2字节的原Unicode编码传输,其第一字节的8位始终为0。这就造成了比较大的浪费。对于这种情况,可以使用UTF-8编码,这是一种变长编码,它将基本7位ASCII字符仍用7位编码表示,占用一个字节(首位补0)。而遇到与其他Unicode字符混合的情况,将按一定算法转换,每个字符使用1-3个字节编码,并利用首位为0或1进行识别。这样对以7位ASCII字符为主的西文文档就大大节省了编码长度


因为Java中char型占两个字节,JVM对Unicode的实现应该是UTF-16吧,具体大端序,小端序应该跟平台有关(个人猜测)。



上面是一些基础知识的普及,下面就比较娱乐了。


Java中支持对Unicode的转义

格式为\u+四位十六进制数。

如a的Unicode编码为0061

那么System.out.println("\u0061");就会输出a


那么如何知道一个字符的Unicode码呢?

		char c = '持';System.out.println(Integer.toHexString(c));

那么如何知道某个Unicode码是什么字符呢?

System.out.println((char)Integer.parseInt("6301", 16));

挺有意思吧?


http://www.xdnf.cn/news/842581.html

相关文章:

  • 南邮《网络技术与应用》4次作业,赶紧学习一下
  • Docker 笔记
  • JAVA程序模拟器安装及使用详细教程
  • 菜鸟级Hibernate入门心得
  • Symbian S60第三版软件精选介绍
  • 《东周列国志》第六十六回 杀宁喜子鱄出奔 戮崔杼庆封独相
  • 迷您工具发布!QQ强制聊天器绿色免费版
  • AI新年头像模板如何制作?三个方法助你轻松打造独特新年头像
  • SSH远程登录的使用和介绍
  • Dubbox简介与入门实战
  • Zxing简明教程
  • 什么是数据标注?
  • 香港高防服务器秒解是什么意思?
  • android人脸识别——HowOld测测你的年龄和性别
  • 展商名单、论坛全攻略!2024深圳增材制造展规模空前、活动超丰富!
  • 【图像处理】自动报靶系统(重弹孔)【含 GUI Matlab源码 973期】
  • ios手游游戏辅助挂机工具_关于扰乱正常游戏秩序类第三方辅助工具(外挂/脚本)的打击公告...
  • 乐味煲耳机软件中文版解读
  • adsfasdfasdf asdfawd
  • 最新Connectify注册码(序列号) Connectify3.7序列号 破解版
  • 永久免费不流氓,12年的国产良心软件正式开源!
  • Retrofit、RxHttp、OkOne
  • 念のため日文翻译成中文
  • 红客是什么?红客需要传承!
  • 实用的android颜色配置表(亮瞎尼的双眼)
  • 颜色对照表
  • shutdown immediate 持久无法关闭数据库之解决方案
  • 最全地理数据下载网址
  • shell IFS
  • LTDC/DMA2D—液晶显示***