1.Unicode(统一码、万国码),从名字里可以看出,unicode码表囊括世界上各国语言文字。 unidode中包含17个代码级别,第一个代码级别又称作基本的多语言级别(码点从U+0000到U+FFFF),
其余16个代码级别(码点从U+10000到U+10FFFF)包含一些辅助字符。这里说一下码点的概念:编码表中的某个字符对应的代码值。如汉字“我”在unicode中对应的码点为U+6211(在unicode3.0之前采用U+xxxx表示一个码点在Unicode3.0中采用U-xxxx xxxx表示一个码点),而unicode只是对字符的一种数字描述,并没有给出这些字符在计算机中应该以多少字节存储。

2.UTF-8是对unicode在计算机上的储存方式的实现,unicode码值

在0000 0000到0000 007F之间规定为一个字节储存,二进制格式为0xxxxxxx,

在0000 0080到000007FF之间规定为两个字节储存,二进制格式为110xxxxx 10xxxxxx,

在0000 0800到0000 FFFF之间规定为三个字节储存,二进制格式为1110xxxx 10xxxxxx 10xxxxxx

在0001 0000到0010 FFFF之间规定为四个字节储存,二进制格式为11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

一字节的表示范围为0到127即2的7次方,两个字节的表示范围128到2047即2的11次方。三个 字节的表示范围为2048到65535即2的16次方,n字节表示范围为2的(x的个数)的次方

3.下面是unicode码对UTF-8的转换,举个例子:

汉子中的“我”的unicode码为6211,其对应的二进制为 ‭01100010 00010001

在0000 0800到0000 FFFF区间内,所以汉子“我”在UTF-8中为3个字节,三个字节在UTF-8中的格式为1110xxxx 10xxxxxx 10x
 xxxxx,从右到左填充为 1110(0110) 10(001000) 10(010001)转换为十六进制为E68891,

括号里的二进制码从左到右读为6211的二进制码。

4。UTF-16

UTF-16:对任何一个字符都用两个字节储存。

UTF-16基于第一个代码级别,每个字符用16位表示(即两个字节四个十六进制数)通常称为代码单元。基于其他16个级别采用一对连续的代码单元进行编码,这样构成的编码值落入基本多语言级别中空闲的2048代码单元内,

称为替代区域[U+D800到U+DBFF用作第一代码单元,U+DC00到U+DFFF用作第二代码单元](1_048_576)(可表示2的20次方个字符)。

可以看出,当文本中英文居多时,采用UTF-8能够高效的利用计算机的储存空间,而文本以韩文中文居多时,UTF-16会比较适合。

Java基础语法-Unicode、UTF-8、UTF-16的更多相关文章

  1. 015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码

    015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码 本文知识点:Unicode编码以及字符如何表示? ASCII码是美国提出的标准信息 ...

  2. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  3. (四)Java 基础语法

    Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一 ...

  4. Java基础语法知识你真的都会吗?

    第一阶段 JAVA基础知识 第二章 Java基础语法知识 在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的"潜规则",通过你对命名 ...

  5. 02:Java基础语法(一)

    Java基础语法 Java的关键字及保留字 关键字(Keyword) 关键字的定义和特点定义:被Java语言赋予了特殊含义的单词特点:关键字中所有字母都为小写注意事项:1)true.false.nul ...

  6. Java基础语法和基本数据类型

    Java基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 对象:对象是类的一个实例,有状态(属性)和行为(方法). 类:类是一个模板,他描述一类对象的行为 ...

  7. 第2天 第一个程序&IDEA安装&Java基础语法

    第一个程序 Hello,World! 随便新建一个文件夹,存放代码 新建一个Java文件 文件后缀名为java Hello.java [注意点]系统可能没有显示后缀名,必须手动打开 编写代码 publ ...

  8. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  9. Java基础语法(上篇)

                     Java基础语法(上篇) 知识概要: (1)关键字的表示与规范       (2)标示符              (3)注释                (4 ...

随机推荐

  1. Android数据存储引擎---SQLite数据库

    目标:是否可以在PC端桌面上使用SQLite数据库制作一个财务文件? 目录: 来源: 实践: 总结和比较: SQLite数据简介 是什么,内部结构是怎样的,数据库和表的关系是什么 有什么用 常用的操作 ...

  2. 对迭代器操作的python 模块

    import itertools import more_itertools 目前用到的more_itertools.ilen(range(10)) --->返回可迭代的数量.这回消耗迭代,小心 ...

  3. JS编码方式

    1. escape(): 采用unicode字符集对指定的字符串除0-255以外进行编码.所有的空格符.标点符号.特殊字符以及更多有联系非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符 ...

  4. (18)0907_CSS选择器详解

    选择器的优先级(决定那个样式生效): important: > 内联样式 > id选择器> 类和伪类 > 元素选择器 > 通配选择器> 继承样式无优先级 最大    ...

  5. java生成/解析二维码

    package a; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import ...

  6. 2019.4.1 JMeter中文乱码解决方案

    1)添加一个HTTP信息头管理器:添加Accept:application/xml;application/json;charset=utf-8 2)参数为中文:在HTTP请求时设置编码格式为utf- ...

  7. linux安装杀毒软件

    https://www.cnblogs.com/bingo1024/p/9018212.html

  8. fpga xilink 电平

  9. PHP函数ip2long转换IP时数值太大而产生负数

    // 使用 sprintf 返回无符号十进制数 $long = sprintf("%u",ip2long($ip)); // 先转换为二进制然后在转换为十进制 $long = bi ...

  10. 数据结构优化dp

    本以为自己的dp已经成熟了没想到在优化上面还是欠佳 或者是思路方面优化dp还不太行. 赤壁之战 当然 很有意思的题目描述 大体上是苦肉计吧 .盖黄 ... 题意是 求出长度为m的严格上升子序列的个数 ...