欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于Java字符编码的使用详解

程序员文章站 2024-02-10 15:35:10
1,什么是字符编码?     字符(character)是文字与符号的总称,包括文字、图形符号、数学符号等。一组抽象字符的集合就是字符集(c...

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。