13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

大嫂说,有你靠的(Unicode)

哈喽,大家好,我是指北君。

成都创新互联是一家集网站建设,邱县企业网站建设,邱县品牌网站建设,网站定制,邱县网站建设报价,网络营销,网络优化,邱县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

最近看《狂飙》了吧,大嫂气场十足!飒爽!

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符 设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

简介

字符集当然是字符的集合,那么字符呢?你看到这篇文章的每个字母、中文或标点符号,就是一个个字符。

在计算器出现的早期,计算机仅支持的字符集为ASCII,其对应的字符就能够满足当时的使用需求,但随着计算机的发展,在计算机上需要显示的内容越来越复杂, 各个国家不同厂商都有自己的实现标准,然而有没有谁能够兼容世界所有的文字,因此产生了各种字符集,比如ASCII、ISO-8859-1、GB2312、BIG5等等。

为了实现人和计算机间的交流,我们只认识字符,计算机只认识二进制数据,字符编码即实现将字符转换成机器码进行存储、使用的的一种技术手段。

Unicode是字符集,而不是编码方式。

字符集

字母、文字、数字、标点符号、图形符号等字符的集合。表示了字符到二进制比特位的映射关系

ASCII

GB2312

字符集编码

字符对应二进制字节表示后的编码规则以及存储形式。

ASCII、GB2312 是字符集也是字符编码

unicode

Unicode编码模型包含五层:

层次

名称

作用

结果

描述

1

抽象字符表ACR

字符范围

2

编号字符集CSS

字符编号

unicode字符集

3

字符编码方式CEF

码元序列

UTF-8、UTF-16、UTF-32

4

字符编码方案CES

物理编码

字节序列

5

传输编码语法TES

网络传输编码

base64

unicode是字符的表现形式,而utf8是字符的存储形式,或者说是存储实现

unicode和utf8

下面是unicode与unf8的映射表,我们通过字符的unicode码点(对应的16进制编码)可以找到对应的utf-8格式并进行编码转换最终实现物理存储。

unicode

utf-8

000000-00007F

0xxxxxxx

000080-0007FF

110xxxxx 10xxxxxx

000800-00FFFF

1110xxxx 10xxxxxx 10xxxxxx

010000-10FFFF

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

那么unicode字符如何转换成utf8编码呢?

有没想过,像GBK为什么既可以是字符集又可以是字符编码?其实将字符映射成对应的二进制数据时,我们是可以将其直接存储到计算机,但unicode作为统一码,基本攘括了目前常用的所有的字符,而这些字符不是都由两个字节组成,比如前面说的å,那么如何确定一个字符到此从哪个字节开始呢?这里引用utf编码就是为了实现这个,不仅减少了字符空间占比,同时提高了字符编码效率。

BOM

BOM 是 Byte Order Mark 的缩写。是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是可选的, 因为UTF8字节没有顺序,所以它可以被用来检测一个字节流是否是UTF-8编码的。

Java中的unicode

在java中,我们通过\u开头来表示unicode编码,比如上面的\u6211,则表示的是“我”。

看下面这段代码,你觉得会输出什么?

public static void main(String[] args) throws IOException {
//
// \u000d System.out.println("Hello World");
}

当然是“Hello World”了,不要觉得//后面的代码全部会被解析为注释,前提是没有换行符,然而\u000d恰好会被解释为换行符,这样其后面的代码会作为新的一行进行解析, 这也是为什么会有这样的输出结果了


通过下面的命令可以对java源文件进行编译:

javac ./Main.java -encoding utf-8

window环境默认编码为gbk

要知道java作为一门高级静态语言,需要通过编译后才能交由JVM加载使用的,在java文件编译前还会经历对源代码进行词法分析、语法分析、语义分析等等,最后生成class文件后,才能被JVM加载。而源文件中\u开头的字符则是在这个过程中被解析并处理的。

结束语

unicode作为世界统一编码,经历了很多变革,该篇主要通过unicode让你对字符集以及字符编码有一个简单的认识。


文章名称:大嫂说,有你靠的(Unicode)
本文地址:http://cdbrznjsb.com/article/cddehhs.html

其他资讯

让你的专属顾问为你服务