unicode学习笔记

最近在做emoji的开发,需要了解到unicode的知识。学习笔记如下。

1,unicode码是跨平台通用的,它是一个数字,代表了计算机上显示出来的符号(比如:中日韩象形文字、拉丁字符等);

2,unicode用数字0-0x10FFFF来映射这些字符;

3,UTF-8以字节为单位对unicode进行编码。可以使用1~6个字节不等去表示一个unicode码,如下所示。

Unicode/UCS-4 bit数 UTF-8 byte数
0000~007F

0~7

0XXX XXXX

1

0080~07FF

8~11

110X XXXX
10XX XXXX

2

0800~FFFF

12~16

1110XXXX
10XX XXXX
10XX XXXX

3

1 0000~1F FFFF

17~21

1111 0XXX
10XX XXXX
10XX XXXX
10XX XXXX

4

20 0000~3FF FFFF

22~26

1111 10XX
10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX

5

400 0000~7FFF FFFF

27~31

1111 110X
10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX
10XX XXXX
6

4,softbank的encode是2个字节,以E开头;

5,java中的String使用UTF-16方式存储;

6,UTF-16中,字符值在U+0000到U+FFFF(注意U+D800到U+DBFF无定义)之间的字符(也叫做BMP, Basic Multilingual Plane),直接用两个字节表示。 字符值在U+10000到U+10FFFF(共有0xFFFFF个字符)之间的字符(也叫做增补字符集, supplementary characters),需要用四个字节表示。

时间: 2024-10-01 08:09:39

unicode学习笔记的相关文章

unicode学习笔记(续)

为了学习unicode的utf-8和utf-16编码,写了如下程序进行学习. import java.nio.charset.Charset; public class MyStudy {          public static String field = "%-20s";          public static void main(String[] args){                 System.out.format(field, "utf-16 

DirectUI 学习笔记2-DUI HellowWorld程序

经过上一章的配置之后,我们有了duilib的环境,现在我们可以开始编写一个DUI程序. 如果你还不会如何下载与配置Duilib,请移步<DirectUI 学习笔记1-源码下载与环境配置> A:我们新建一个类去继承DUI提供给我们的基类 #include pragma once #include <UIlib.h> //如果你附加目录设置的正确,这里不会找不到 using namespace DuiLib; //下面的预处理指令用来判断是否项目使用了unicode与对应的debug于

Java NIO、NIO.2学习笔记

相关学习资料 http://www.molotang.com/articles/903.html http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html 目录 1. NIO.NIO.2简介 2. NIO中的关键技术 1. NIO.NIO.2简介 Java中的输入流.输出流都是阻塞式的输入.输出.不仅如此,传统的输入流.输出流都是通过字节的移动来处理的(即使是字符流,在底层也是通过字节流来进行处理的),也就是说,面向

Apache commons lang工具类学习笔记(2)--StringUtils

StringUtils工具类具有对String具有简单而强大的处理能力,从检查空串到分割字符串,到生成格式化的字符串,使用都很方便简洁,能减少很多代码量; 详细的使用方法可以参考下面的例子或者官方的API(http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringUtils.html#isAlpha(java.lang.CharSequence)) packa

R语言学习笔记2——绘图

R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, 60)> drugB <- c(15, 18, 25, 31, 40) > plot(dose, drugA, type="b") > plot(dose, drugB, type="b") 该例中,我们引入了R语言中第一个绘图函数plot.pl

Python Click 学习笔记(转)

原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发的一个小工具需要在命令行环境下操作,就写个学习笔记. 国际惯例,先来一段 "Hello World" 程序(假定已经安装了 Click 包). # hello.py import click @click.command() @click.option('--count', default

nodejs学习笔记(基于v7.4.0)

nodejs学习笔记 一.buffer: 全局对象(单例   Buffer.from   Buffer.alloc   Buffer.allocUnsafe ) 编码类型 描述 ascii 仅仅用于7位ascall数据编码,速度快,如果设置了将会剥离高位 utf8 多字节的编码的Unicode字符,网页文档大部分默认都为它. utf16le 小端编码的Unicode字符,2或者4个字节 ucs2 utf16le的别名 base64 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之

python学习笔记系列----(一)python简介

一个月前,就按下决心要系统的学习下python了,虽然之前有学习过java,学习过c++,也能较为熟练的使用java做自动化测试看懂c++里的业务逻辑,但是实际上有那么多的东西自己还是不清楚,今天下定决心,开始了python的系统的学习之路,之前我是有看过廖学峰的教程的,看完收获确实也是少,但总感觉就是少了什么,后面想了下,我想应该是自己的学习方法~~~介于之前学习RF的经验,我认为看官方文档对于一个想系统学习python的人来说,真的是一个不能再好的学习方法,接下来我会开始坚持把python2

java JDK8 学习笔记——第16章 整合数据库

第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程序. 2.JDBC标准主要分为两个部分:JDBC应用程序开发者接口和JDBC驱动程序开发者接口.应用程序需要联机数据库,其相关API主要在java.sql和javax.sql两个包中. 3.应用程序使用JDBC联机数据库的通用语法: Connection conn = DriverManager.g