Java中编码以及Unicode总结

合集下载

字符编码(1)——Unicode,utf-8

字符编码(1)——Unicode,utf-8

字符编码(1)——Unicode,utf-8字符编码编码是⼀个将⼀组Unicode字符转换业个字节序列的过程。

⽽解码是将⼀个编码字节序列转换为⼀组Unicode字符的过程。

Unicode字符是什么?Unicode字符集可以简写为UCS,也就是Unicode charactor setUnicode编码是国际组织制定的可以容纳世界上所有⽂字和符号的字符编码⽅案。

它通过0到0x10FFFF来映射字符,最多可容纳1114112个字符(16进制的10FFFF的值是1114111,然后加⼀个0x000000就是1114112个)。

可以看⼀下1114112的⼆进制表⽰形式为:1 0001 00000000 00000000UTF是什么?UTF是Unicode转换格式的意思,是UCS Transformation Format的缩写。

Utf-8UTF-8以字节为单位对Unicode进⾏编码。

utf-8特点是对不同范围的字符⽤不同长度的编码。

从Unicode到UTF-8的编码⽅式如下:Unicode编码(16进制) ║ UTF-8 字节流(⼆进制)000000 - 00007F ║ 0xxxxxxx000080 - 0007FF ║ 110xxxxx 10xxxxxx000800 - 00FFFF ║ 1110xxxx 10xxxxxx 10xxxxxx010000 - 10FFFF ║ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx例如:“赵”这个字的Unicode编码(16进制表⽰⽅法)是:8d 75这个编码在.net中可以通过ToString()⽅法来实现。

为了进⾏后边的说明。

这⾥先给出测试⽤的转换⽅法:public static class CharSetHelper{public static string TransCoding(this int iValue,eTrans eType){return Convert.ToString(iValue, (int)eType);}public static string GetCorrectCoding(this string selfChar, Encoding encoding, eTrans eType){int iUnicode = (int)char.Parse(selfChar);return iUnicode.TransCoding(eType);}}public enum eTrans{Binary=2,Octonary=8,Decimal=10,Hexadecimal=16}⼀个枚举,⽤于枚举数的进制,⼀个从字串转换到特定的字符编码,并以指定进制表⽰的⽅法。

java icu 字符集编码映射规则

java icu 字符集编码映射规则

java icu 字符集编码映射规则
在 Java 中,ICU(International Components for Unicode)库是
一个 Unicode 和国际化支持的开源库。

它提供了许多与字符集编码相关的功能和规则。

ICU 提供了以下编码映射规则和功能:
1. 字符集编码转换:ICU 提供了将不同字符集编码之间进行转换的功能。

它支持常见的字符集编码,如UTF-8、UTF-16、GB2312、ISO-8859-1 等。

2. 字符集编码自动检测:ICU 提供了自动检测给定字节数组的编码的功能。

它可以根据字节的序列和字符集编码的特征来判断最可能的编码。

3. Unicode 规范支持:ICU 实现了 Unicode 规范,并提供了Unicode 字符的属性信息、正则表达式支持、字符转换等功能。

4. 字符集编码遍历:ICU 提供了遍历指定字符集编码中的所有字符的功能。

这对于生成字符集编码相关的索引或列表非常有用。

5. 字符集编码相关类:ICU 提供了一系列与字符集编码相关的类,如 CharsetEncoder、CharsetDecoder、Charset、CharsetProvider 等。

ICU 的字符集编码映射规则可以用于处理文本文件、网络传输、
数据库存储等场景中的字符集编码转换和处理。

它提供了一种可靠和准确的方式来支持不同字符集编码之间的转换和交互。

java的基本符号

java的基本符号

语句的分类 Java语句按是否改变运行的状态可分为执行语句(如表达式语句)和非执行语句(如声明语句)。任何语句的 末尾都以“;”结束。 执行语句按其组成可分三类: 空语句 只有一个语句结束符“;” ,无任何内容。 基本语句(单语句) 独立的、完整的不能再分割为更小的可执行单元。 复合语句(块语句) 包含在{ }内的一条或若干条语句。 Java的基本语句的结构可分为4类: (1)顺序结构语句 (2)分支语句 (3)循环语句 (4)例外处理语句 后三种语句又称为流控制语句,我们将主要介绍分支语句和循环语句,而例外处理语句包括try、catch、 finally以及throw语句。 这些语句是Java所特有的。我们将在后面作专门的介绍。 分支语句 分支语句包括if-else, break, switch, return等语句。分支语句提供了一种控制机制,使得程序可以跳过一 些语句,转去执行特定的语句。条件语句 if-else. if-else语句根据判定条件的真假来执行两种操作中的一种,其格式为: if (boolean-expression) statement1; else statement2; 其中,要注意的有: 布尔表达式boolean-expression是任意一个返回布尔型数据的表达式(这比C、C++的限制要严格)。 每个单一的语句后都必须有分号。
接口(Interfaces):规则同类名。 如:Interface Account 方法(methods): 由一个或多个动词组成,开头小写,动词间区分 用大写,其他小写。 如:balanceAccount() 变量:小写字母开头,单词间用大写字母分隔 如:currentCustomer 常量:所有字母大写,单词间用下划线区分 如:MAXIMUM_SIZE Java的操作符 根据操作对象的个数操作符可分为一元、二元或三元操作符。根据操 作符的功能,又可分为算术、逻辑、关系等操作符。 算术操作符 一元: + - ++ -二元: + - * / % 值得注意的是 ++ 和-- 操作符, 如:int a,x=1,y=5; a = ++x;b=y++; 此时a的值为2(先加1,后赋值),b的值为5(先赋值,后加1)。 二元操作符两侧的操作对象数据类型不先自动进行类型转换,再进行 操作。 赋值操作符与复合赋值操作符 可将 变量 = 变量 op 表达式 写成 变量 op = 表达式 如:x+=20 与 x=x+20 结果一致,但更简洁。 注意:= 与 = = 的不同。

java中的url编码与解码

java中的url编码与解码

java中的url编码与解码在开始讨论编码解码之前,⾸先来明确⼀下问题。

什么是application/x-www-form-urlencoded字符串?答:它是⼀种编码类型。

当URL地址⾥包含⾮西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串。

表单⾥提交时也是如此,当包含⾮西欧字符的字符串时,系统也会将这些字符转换成application/x-www-form-urlencoded字符串。

然⽽,在向服务器发送⼤量的⽂本、包含⾮ASCII字符的⽂本或⼆进制数据时这种编码⽅式效率很低。

这个时候我们就要使⽤另⼀种编码类型“multipart/form-data”,⽐如在我们在做上传的时候,表单的enctype属性⼀般会设置成“multipart/form-data”。

Browser端<form>表单的ENCTYPE属性值为multipart/form-data,它告诉我们传输的数据要⽤到传输,由于多媒体传输的都是⼤量的数据,所以规定上传⽂件必须是post⽅法,<input>的type属性必须是file。

form中的其他enctype请。

跑题了我。

我们经常会在浏览器的地址栏⾥看到这样的字符串%E6%96%87%E6%A1%A3这就是被编码后的字符串,下⾯我们就讨论⼀下java 的url编码与解码问题代码.URLDecoder.decode(String s,String enc);将application/x-www-form-urlencoded字符串转换成普通字符串。

.URLEncoder.decode(String s,String enc);将普通字符串转换成application/x-www-form-urlencoded字符串代码下⾯转载⼀⽚⽂章/*⽹页中的表单使⽤POST⽅法提交时,数据内容的类型是 application/x-www-form-urlencoded,这种类型会:1.字符"a"-"z","A"-"Z","0"-"9",".","-","*",和"_" 都不会被编码;2.将空格转换为加号 (+) ;3.将⾮⽂本内容转换成"%xy"的形式,xy是两位16进制的数值;4.在每个 name=value 对之间放置 & 符号。

unicode编码规则

unicode编码规则

unicode编码规则【原创版】目录1.Unicode 编码规则简介2.Unicode 编码的基本原理3.Unicode 编码表的构成4.Unicode 编码的应用领域5.Unicode 编码的优点和局限性正文一、Unicode 编码规则简介Unicode 编码规则是一种用于表示各种语言字符的编码系统,由国际标准化组织(ISO)制定。

Unicode 编码规则旨在实现全球范围内各种文字的统一表示,以便在计算机系统中进行高效、准确的数据交换和处理。

二、Unicode 编码的基本原理Unicode 编码的基本原理是将世界上各种语言的字符都映射到一个统一的编码空间,这个空间包含了所有可打印字符、标点符号以及特殊字符等。

Unicode 编码使用一个字节(8 位)或两个字节(16 位)来表示一个字符,这使得它能够表示世界上几乎所有的字符集。

三、Unicode 编码表的构成Unicode 编码表包含了所有的 Unicode 字符及其对应的编码值。

Unicode 编码表的构成遵循一定的规律,如:字母、数字、标点符号等具有规律的编码范围。

Unicode 编码表按照字符的类型和用途进行分类,包括了常用字符、符号、特殊字符等。

四、Unicode 编码的应用领域Unicode 编码在众多领域得到了广泛应用,如:计算机编程、网页设计、文本处理、数据传输等。

Unicode 编码的出现解决了不同国家和地区字符编码的兼容性问题,使得全球范围内的信息交流变得更加便捷。

五、Unicode 编码的优点和局限性Unicode 编码的优点包括:统一表示全球范围内的字符,提高了字符编码的兼容性和通用性;节省了存储空间,提高了数据处理的效率;易于实现字符的输入、输出和转换。

然而,Unicode 编码也存在一定的局限性,如:对于一些特殊领域的字符集支持不足;编码值可能会受到限制,导致某些字符无法表示。

综上所述,Unicode 编码规则作为一种全球通用的字符编码体系,具有广泛的应用前景和重要的现实意义。

Unicode编码是什么

Unicode编码是什么

Unicode编码是什么Unicode编码是什么⼀、总结⼀句话总结:> 1、Unicode码扩展⾃ASCII字元集。

Unicode最初打算作为ASCII的补充,可能的话,最终将代替它。

> 2、Unicode是⼀个编码⽅案,Unicode 编码共有三种具体实现,分别为utf-8,utf-16,utf-32,其中utf-8占⽤⼀到四个字节,utf-16占⽤⼆或四个字节,utf-32占⽤四个字节。

1、ASCII码7位,Unicode16位?)字元集> 在严格的ASCII中,每个字元⽤7位元(2^7=128,2^8=256)表⽰,Unicode使⽤全16位元(2^16=65,536)字元集⼆、Unicode编码是什么是⼀个编码⽅案,Unicode 是为了解决传统的字符编码⽅案的局限⽽产⽣的,它为每种语⾔中的每个字符设定了统⼀并且唯⼀的编码,以满⾜跨语⾔、跨平台进⾏⽂本转换、处理的要求。

Unicode 编码共有三种具体实现,分别为utf-8,utf-16,utf-32,其中utf-8占⽤⼀到四个字节,utf-16占⽤⼆或四个字节,utf-32占⽤四个字节。

Unicode 码在全球范围的信息交换领域均有⼴泛的应⽤。

Unicode码扩展⾃ASCII。

在严格的ASCII中,每个字元⽤7位元表⽰,或者电脑上普遍使⽤的每字元有8位元宽;⽽Unicode使⽤全16位元字元集。

这使得Unicode能够表⽰世界上所有的书写语⾔中可能⽤於电脑通讯的字元、象形⽂字和其他符号。

Unicode最初打算作为ASCII的补充,可能的话,最终将代替它。

考虑到ASCII是电脑中最具⽀配地位的标准,所以这的确是⼀个很⾼的⽬标。

Unicode影响到了电脑⼯业的每个部分,但也许会对作业系统和程式设计语⾔的影响最⼤。

从这⽅⾯来看,我们已经上路了。

Windows NT 从底层⽀持Unicode。

计算机中⽤得最⼴泛的及其编码,是由(ANSI)制定的ASCII码(American Standard Code for Information Interchange,),它已被(ISO)定为国际标准,称为ISO 646标准。

unicode编码概念

Unicode(统一码)是一种用于字符编码的国际标准。

它旨在为世界上所有的文字字符提供唯一的标识,以解决不同字符集和编码方案之间的混乱。

Unicode 包含了几乎所有已知的文字,符号和标点符号,并为每个字符分配了一个唯一的数字,称为码点。

以下是一些关键概念:1.码点(Code Point):Unicode 中的每个字符都对应一个唯一的数字,这个数字称为码点。

码点通常用十六进制表示,前缀为"U+"。

例如,拉丁字母A 的码点是U+0041。

2.编码单元(Code Unit):在计算机存储中,Unicode 字符可能需要多个字节来表示。

编码单元是存储中的最小单位。

在UTF-8编码中,一个字符可能由1到4个字节组成,而在UTF-16编码中,一个字符通常由2个字节表示。

3.编码方案:Unicode 定义了不同的编码方案,用于将码点映射到实际的字节序列。

常见的编码方案包括UTF-8、UTF-16 和UTF-32。

它们使用不同的规则将码点映射到字节,以及将字节转换回码点。

4.UTF-8:UTF-8 是一种可变长度的编码方案,使用1到4个字节表示一个字符。

它是最常见的Unicode 编码,适用于互联网传输和存储。

5.UTF-16:UTF-16 是一种可变长度的编码方案,使用2或4个字节表示一个字符。

它在某些应用程序和平台中使用较多。

6.UTF-32:UTF-32 是一种固定长度的编码方案,使用4个字节表示一个字符。

它在内存中的表示更为直观,但通常会占用更多的空间。

Unicode 的使用使得在不同计算机系统和不同应用程序之间更容易地进行文本交流,因为它提供了一个标准的字符集和编码方案。

encodeuri java解码

一、EncodeURI和Java解码的概念在编程中,EncodeURI是指对URI(Uniform Resource Identifier,统一资源标识符)进行编码,以便能在网络环境下传输。

而Java解码则是指使用Java编程语言对经过编码的URI进行解码,以还原原始的信息内容。

二、EncodeURI的作用和原理1. 作用:EncodeURI主要用于对URI中的非安全字符进行编码,以确保URI能够在网络环境下被正确传输和解析。

非安全字符包括某些特殊符号和中文等字符。

2. 原理:EncodeURI使用一种称为百分号编码(Percent-encoding)的方式对URI进行编码。

百分号编码是通过将每个字符转换成其在ASCII字符集中的十六进制值,并在前面加上百分号来表示。

这样就可以确保URI中不会含有非安全字符,从而避免出现传输和解析问题。

三、Java解码的实现方式1. Java提供了一些内置的工具类和方法,可以用于对经过编码的URI进行解码。

其中比较常用的是包中的URLDecoder类,它提供了decode()方法来实现解码功能。

2. 通过调用URLDecoder类的decode()方法,可以将经过编码的URI字符串还原成原始的URI内容。

解码完成后,就可以对URI进行进一步处理和分析。

四、EncodeURI和Java解码的应用场景1. 在Web开发中,EncodeURI和Java解码经常用于处理URL参数传递的情况。

比如在前端页面中使用JavaScript的encodeURIComponent()方法对参数进行编码,然后在后端使用Java 的URLDecoder类对参数进行解码,以确保参数的准确传递和处理。

2. 在网络通信中,EncodeURI和Java解码也可以用于对URL进行编码和解码,以确保URL在不同环境下的正确传输和解析。

五、总结在编程开发中,对URI进行编码和解码是非常常见的操作。

EncodeURI和Java解码是两种常用的方式,能够确保URI在网络环境下的传输和解析准确无误。

unicode编码规则

unicode编码规则
Unicode 编码是一种字符编码方案,它为世界上几乎所有的文字和符号分配了一个唯一的数字标识。

Unicode 编码规则包括以下几个方面:
1. 编码范围,Unicode 编码包括基本多文种平面(BMP)和辅助平面。

BMP 包含了常用的字符,而辅助平面包含了一些不常用的字符,表情符号等。

2. 编码格式,Unicode 编码采用不同的格式来表示字符,最常见的是 UTF-8、UTF-16 和 UTF-32。

UTF-8 是一种可变长度的编码格式,使用 1 到 4 个字节来表示一个字符;UTF-16 使用 2 个或4 个字节来表示一个字符;UTF-32 则使用固定的 4 个字节来表示一个字符。

3. 编码表示,Unicode 编码使用十六进制数字来表示字符,每个字符都有一个唯一的编码值。

例如,拉丁字母 A 的 Unicode 编码是 U+0041。

4. 码点和码位,Unicode 字符的编码值称为码点(code
point),而字符在内存中的实际存储位置称为码位(code unit)。

在不同的编码格式中,一个字符的码点可能对应不同数量的码位。

总的来说,Unicode 编码规则通过统一的方式为世界上的所有
字符分配了唯一的编码值,使得不同的计算机系统和软件能够正确
地处理和显示各种语言的文本。

Java中的字节,字符与编码,解码

Java中的字节,字符与编码,解码ASCII编码ASCII码主要是为了表⽰英⽂字符⽽设计的,ASCII码⼀共规定了128个字符的编码(0x00-0x7F),只占⽤了⼀个字节的后⾯7位,最前⾯的1位统⼀规定为0。

ISO-8859-1编码为了扩展覆盖其他语⾔字符,ISO组织在ASCII码基础上⼜制定了⼀系列标准⽤来扩展ASCII编码,它们是ISO-8859-1~ISO-8859-15,其中ISO-8859-1应⽤得最⼴泛。

ISO-8859-1仍然是单字节编码,它总共能表⽰256个字符。

ISO-8859-1向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII⼀致。

因为ISO-8859-1编码范围使⽤了单字节内的所有空间,在⽀持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。

换⾔之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。

Unicode,UCS2和UCS4Unicode是为整合全世界的所有语⾔⽂字⽽诞⽣的。

任何⽂字在Unicode中都对应⼀个值,这个值称为代码点(Code Point),常写成 U+XXXX的格式。

⽽⽂字和代码点之间的对应关系就有UCS-2和UCS-4。

UCS-2:⽤两个字节来表⽰代码点,其取值范围为 U+0000~U+FFFF。

UCS-4:为了能表⽰更多的⽂字,⼈们⼜提出了UCS-4,即⽤四个字节表⽰代码点。

它的范围为 U+00000000~U+7FFFFFFF,其中U+00000000~U+0000FFFF和UCS-2是⼀样的。

要注意,UCS-2和UCS-4只规定了代码点和⽂字之间的对应关系,并没有规定代码点在计算机中如何存储。

规定存储⽅式的称为UTF(Unicode Transformation Format),其中应⽤较多的就是UTF-8和UTF-16了。

UTF-8,UTF-16,UTF-32UTF-32是对应于UCS-4,不常⽤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java中编码以及Unicode总结 1. 基本概念  bit 位只能是0或者1  byte 字节一个字节是8位,1 byte=8 bits 计算机表示的基本单位  KB,MB,GB,TB,PB是以1024与byte进行换算  进制 用符号进行计数 十进制、二进制、八进制(011)、十六进制(0xFF) 字符文字和符号的总称  字符集 多个字符集合的总称。ASCII字符集、GB2312字符集、GBK字符集、BIG5字符集、GB18003字符集、Unicode字符集  byte可表示2^8=256个字符的表示 0 0×00 0000,0000 1 0×01 0000,0001 2 0×01 0000,0010 127 0×7F 0111,1111 -128 0×80 1000,0000 -2 0xFE 1111,1110 -1 0xFF 1111,1111  以补码的形式表示的二进制编码。 -2的表示,2=0000,0010,反码1111,1101,补码=反码+1=11111110 1111,1110表示的就是1111,1110-1=1111,1101,取反就是0000,0010也就是2,所以就是-2 2. 字符集和编码

2.1. 字符(Character) 字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。 2.2. 字符集(Character Set)

一组抽象字符的集合就是字符集(Character Set)。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。字符集的子集也是字符集。 计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。根据字符集内字符的多少,会确定用几个字节来编码。每种编码都限定了一个明确的字符集合,叫做被编码过的字符集 (Coded Character Set),这是字符集的另外一个含义。通常所说的字符集大多都是指编码字符集(Coded Character Set)。 2.2.1. ASCII字符集 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于罗马字母表的一套电脑编码系统。由美国国家标准局(ANSI)制定。 7位,可以表示2^7=128个字符。在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。 7位编码的字符集只能支持128个字符,为了表示更多的欧洲常用字符对ASCII进行了扩展,ASCII扩展字符集使用8位(bits)表示一个字符,共 256字符。 ASCII扩展字符集比ASCII字符集扩充出来的符号包括表格符号、计算符号、希腊字母和特殊的拉丁符号。

2.2.2. GB2312 字符集 GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集?基本集》,由原中国国家标准总局发布,1981年5月1日实施。在中国大陆和新加坡获广泛使用。GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中包括6763个汉字,其中一级汉字3755个,二级汉字3008个;包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。 GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。各区包含的字符如下:01-09区为特殊符号;16-55区为一级汉字,按拼音排序;56-87区为二级汉字,按部首/笔画排序;10-15区及88-94区则未有编码。 两个字节中前面的字节为第一字节,后面的字节为第二字节。习惯上称第一字节为“高字节” ,而称第二字节为“低字节”。“高位字节”使用了0xA1-0xF7 (把01-87区(88-94区未有编码)的区号加上0xA0),“低位字节”使用了0xA1-0xFE (把01-94加上0xA0)。 以GB2312字符集的第一个汉字“啊”字为例,它的区号16,位号01,则区位码是1601,在大多数计算机程序中,高字节和低字节分别加0xA0得到程序的汉字处理编码0xB0A1。计算公式是:0xB0=0xA0+16, 0xA1=0xA0+1。

2.2.3. GBK 字符集 GBK全名为汉字内码扩展规范,英文名Chinese Internal Code Specification。K 即是“扩展”所对应的汉语拼音(KuoZhan11)中“扩”字的声母。GBK 来自中国国家标准代码GB 13000.1-93。GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并涵盖了原Unicode中所有的汉字20902,总共收录了883个符号, 21003个汉字及提供了1894个造字码位。[(GBKH-0xB0)*0x5E+(GBKL-0xA1)]*(汉字离散后每个汉字点阵所占用的字节) GBK是GB2312的扩展,是向上兼容的,因此GB2312中的汉字的编码与GBK中汉字的相同。另外,GBK中还包含繁体字的编码。 GBK中每个汉字仍然包含两个字节,第一个字节的范围是0×81-0xFE(即129-254),第二个字节的范围是0×40-0xFE(即 64-254)。GBK中有码位23940个,包含汉字21003个。 2.2.4. BIG5字符集 又称大五码或五大码,1984年由台湾财团法人信息工业策进会和五间软件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、大众 (FIC)创立,故称大五码。Big5码的产生,是因为当时台湾不同厂商各自推出不同的编码,如倚天码、IBM PS55、王安码等,彼此不能兼容;另一方面,台湾政府当时尚未推出官方的汉字编码,而中国大陆的GB2312编码亦未有收录繁体中文字。 Big5字符集共收录13,053个中文字,该字符集在中国台湾使用。耐人寻味的是该字符集重复地收录了两个相同的字:“兀”(0xA461及 0xC94A)、“嗀”(0xDCD1及0xDDFC)。 Big5码使用了双字节储存方法,以两个字节来编码一个字。第一个字节称为“高位字节”,第二个字节称为“低位字节”。高位字节的编码范围 0xA1-0xF9,低位字节的编码范围0×40-0×7E及0xA1-0xFE。各编码范围对应的字符类型如下:0xA140-0xA3BF为标点符号、希腊字母及特殊符号,另外于0xA259-0xA261,存放了双音节度量衡单位用字:兙兛兞兝兡兣嗧瓩糎;0xA440-0xC67E为常用汉字,先按笔划再按部首排序;0xC940-0xF9D5为次常用汉字,亦是先按笔划再按部首排序。

2.2.5. GB18030字符集 GB 18030的全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。GB 18030-2000收录了27533个汉字,GB 18030-2005收录了70244个汉字。GB18030的总编码空间超过150万个码位。 GB 18030字符集标准解决汉字、日文假名、朝鲜语和中国少数民族文字组成的大字符集计算机编码问题。该标准的字符总编码空间超过150万个编码位,收录了 27484个汉字,覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统一汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。 GB 18030标准采用单字节、双字节和四字节三种方式对字符编码。单字节部分使用0×00至0×7F码(对应于ASCII码的相应码)。双字节部分,首字节码从0×81至0×FE,尾字节码位分别是0×40至0×7E和0×80至0×FE。四字节部分采用GB/T 11383未采用的0×30到0×39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0×81308130到0×FE39FE39。其中第一、三个字节编码码位均为0×81至0×FE,第二、四个字节编码码位均为0×30至0×39。 双字节部分收录内容主要包括GB13000.1全部CJK汉字20902个、有关标点符号、表意文字描述符13个、增补的汉字和部首/构件80个、双字节编码的欧元符号等。四字节部分收录了上述双字节字符之外的,包括CJK统一汉字扩充A在内的GB 13000.1中的全部字符。

2.2.6. ANSI编码 不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。”DBCS”(Double Byte Charecter Set 双字节字符集)。在DBCS系列标准里,最大的特点是两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里,因此他们写的程序为了支持中文处理,必须要注意字串里的每一个字节的值,如果这个值是大于127的,那么就认为一个双字节字符集里的字符出现了。 汉字编码范围 名称 第一字节 第二字节 GB2312 0xB0-0xF7(176-247) 0xA0-0xFE(160-254) GBK 0×81-0xFE(129-254) 0×40-0xFE(64-254) Big5 0×81-0xFE(129-255) 0×40-0×7E(64-126)或者0xA1-0xFE(161-254)

2.3. 字符集编码(Character Set Encoding)

ASCII,GB2312,GBK,BIG5,GB18030, UCS,Utf-8,utf-16,utf-32 都有自己不同的规则,都有自己的对应规则,但都兼容ASCII。在使用时要注意这些编码相互之间的转换规则。对于没有转换规则的编码体系之间进行转换只能依靠查编码表进行。

相关文档
最新文档