基于Java字符编码的使用详解
时间:2023-02-26 23:13:01
1,什么是字符编码?
字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。一组抽象字符的集合就是字符集(Charset)。字符集的出现是为了信息进行传播储存提供方便。目前常用到字符集有:ASCII,ISO 8859-1,Unicode,GB2312
2,各种编码集有哪些特点?
ASCII:
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。
包含内容:控制字符(回车,退格,换行键),可显示式字符(英文大小写,阿拉伯数字和西文符号)。
技术特征:7位(bits)表示一个字符,共128字符
不足之处:只能表示英语,想西欧,东亚和拉美地区的语言符号无法表示。
ISO 8859-1:
ISO 8859-1,正式编号为ISO/IEC 8859-1:1998,又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。
它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入96个字母及符号,藉以供使用附加符号的拉丁字母语言使用。曾推出过 ISO 8859-1:1987 版。
包含内容:ASCII编码包含的,部分西欧使用的语言。
技术特征:8位表示一个字符。
Unicode:
Unicode字符集编码是Universal Multiple-Octet Coded Character Set 通用多八位编码字符集的简称,是由一个名为 Unicode 学术学会(Unicode Consortium)的机构制订的字符编码系统,支持现今世界各种不同语言的书面文本的交换、处理及显示。该编码于1990年开始研发,1994年正式公布,最新版本是2005年3月31日的Unicode 4.1.0。
技术特征:16位编码,每个字符占用2个字节。一个字符的Unicode编码是确定的。但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同。Unicode的实现方式称为Unicode转换格式(Unicode Transformation Format,简称为UTF)。如果一个7位的ASCII字符的Unicode文件,在传输过程中如果使用2个字节的原Unicode编码传输会造成比较大的浪费。对于这种情况,可以使用UTF-8编码,这是一种变长编码,它将基本7位ASCII字符仍用7位编码表示,占用一个字节(首位补0)。而遇到与其他Unicode字符混合的情况,将按一定算法转换,每个字符使用1-3个字节编码,并利用首位为0或1进行识别。
GB2312:
GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称GB0,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。
包含内容:6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。
技术特征:每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”,第二个字节称为“低位字节”。“高位字节”使用了0xA1-0xF7,“低位字节”使用了0xA1-0xFE0xA0)。 由于一级汉字从16区起始,汉字区的“高位字节”的范围是0xB0-0xF7,“低位字节”的范围是0xA1-0xFE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java对zip,rar,7z文件带密码解压实例详解
![](https://img.aspxhome.com/file/2023/4/60674_0s.png)
Android实现蓝牙聊天功能
![](https://img.aspxhome.com/file/2023/7/122077_0s.png)
关于java String中intern的深入讲解
Android编程之json解析实例详解
Java 使用getClass().getResourceAsStream()方法获取资源
Android利用GridView实现单选效果
![](https://img.aspxhome.com/file/2023/4/139664_0s.jpg)
Java 中普通代码块,构造代码块,静态代码块区别及代码示例
Java实现字符串解析为日期时间的方法示例
![](https://img.aspxhome.com/file/2023/8/91148_0s.jpg)
maven中配置项目的jdk版本无效的排查方式
![](https://img.aspxhome.com/file/2023/9/57509_0s.png)
基于C#制作一个休息提醒闹钟的详细步骤
![](https://img.aspxhome.com/file/2023/9/81059_0s.png)
c# 爬取优酷电影信息(1)
JavaWeb中获取表单数据及乱码问题的解决方法
![](https://img.aspxhome.com/file/2023/3/69673_0s.png)
递归出现栈溢出stackoverflow的问题及解决
![](https://img.aspxhome.com/file/2023/0/89570_0s.png)
java实现发送邮箱验证码
![](https://img.aspxhome.com/file/2023/6/83436_0s.jpg)
java实现邮件发送
![](https://img.aspxhome.com/file/2023/2/68762_0s.jpg)
彻底解决tomcat中文乱码问题方案
![](https://img.aspxhome.com/file/2023/1/66201_0s.png)
Java Main 函数启动不退出的解决方案
WPF实现背景灯光随鼠标闪动效果
![](https://img.aspxhome.com/file/2023/5/98175_0s.gif)
自定义时间格式转换代码分享
Java中多线程下载图片并压缩能提高效率吗
![](https://img.aspxhome.com/file/2023/6/77076_0s.png)