由于本人在学习过程中,经常被不同类型的编码折磨故学习总结了一波。现在最常见的是utf-8,同时在不同编辑器打开时utf-8的注释会被翻译成乱码,所以让我很苦恼,不说了,开始总结。
Unicode字符集
Unicode字符集(简称为UCS),国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国文字、符号进行统一性编码。1991年美国跨国公司成立Unicode Consortium,并于1991年10月与WG2达成协议,采用同一编码字集。目前Unicode是采用16位编码体系,其字符集内容与 ISO10646的BMP(Basic Multilingual Plane)相同。Unicode于1992年6月通过DIS(Draf International Standard),目前版本V2.0于1996公布,内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留 20249个,共计65534个。Unicode编码后的大小是一样的.例如一个英文字母 "a" 和 一个汉字 "好",编码后都是占用的空间大小是一样的,都是两个字节!
UNICODE字符集有多个编码方式,分别是UTF-8,UTF-16,UTF-32和UTF-7编码。
UTF-8(最常用的字符集)
TF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与
UTF-8编码规则:如果只有一个字节则取值为\x00-\x7F。其余字节按长度进行以下拓展:
UTF-8由4种编码方式实现,即UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4。
UTF-16
UTF-16是
编码模式:UTF-16的大尾序和小尾序储存形式都在用。一般来说,以Macintosh制作或储存的文字使用大尾序格式,以Microsoft或Linux制作或储存的文字使用小尾序格式。
UTF-16比起
base64(网络传输)
Base64是网络上最常见的用于传输8Bit
Base64编码是从二进制到字符的过程,可用于在。采用Base64编码具有不可读性,需要解码后才能阅读。
Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。
Base64的索引与对应字符的关系如下表所示:
Java中实现Base64:
package com.first;
import org.junit.Test;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
public class Test {
GBK字符集(与utf-8转换时,中文会出现乱码)
GBK编码(Chinese Internal Code Specification)是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。gbk编码能够用来同时表示繁体字和简体字,而gb2312只 能表示简体字,gbk是兼容gb2312编码的。GBK工作小组于1995年10月,同年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字 21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。Windows95/98简体中文版的字库表层编码就采用的是GBK,通过 GBK与UCS之间一一对应的码表与底层字库联系。 英文名:Chinese Internal Code Specification
-
中文名:汉字内码扩展规范1.0版
-
双字节编码,GB2312-80的扩充,在码位上和GB2312-80兼容
-
范围:8140~FEFE(剔除xx7F)共23940个码位
-
包含21003个汉字,包含了ISO/IEC 10646-1中的全部中日韩汉字
-
作用:它是GB2312的扩展,加入对繁体字的支持,兼容GB2312。
-
位数:使用2个字节表示,可表示21886个字符。
-
范围:高字节从81到FE,低字节从40到FE。
ASCII
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于
常见ASCII码的大小规则:0~9<A~Z<a~z。
1)数字比字母要小。如 “7”<“F”;
2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;
3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;
4)同个字母的大写字母比小写字母要小32。如“A”<“a” 。
几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48。
以上就是比较常见的字符编码集,希望对大家有所帮助。
参考网址:
①https://www.cnblogs.com/happyday56/p/4135845.html
②https://blog.csdn.net/qq_20545367/article/details/79538530