Oracle字符集由那些部分组成 (oracle是什么)

教程大全 2025-07-12 02:01:54 浏览

我们都知道Oracle字符集有N多种,最初我们应用比较广泛的字符集是ASCII,但是因为ASCII所支持的相关字符是很有限的,因此又相继出现了很多的编码方案,这些编码方案大部分都是包括了ASCII的。EBCDIC编码是另一个比较基本的编码,它的部分字符采用了和ASCII不同的编码值,因此两者是不兼容的基本编码方案。

采用EBCDIC编码的比较少,目前主要是IBM 的系统采用,如AS400及S390系统,大部分的系统都是基于ASCII编码的。

由于亚洲国家的Oracle字符集相对复杂一些,因此一般都使用了两个及以上的字节进行编码的方案。对于简体中文,GB2312码是国家1981年实施的编码标准,通行于大陆。新加坡等地也使用此编码。GBK编码是GB2312码的扩展,是1995年发布的指导性规范,它在字汇一级支持 ISO/IEC 10646-1 和GB 13000-1 的全部中日韩 (CJK) 汉字(20902字)。

Oracle字符集由那些部分组成

目前***的汉字字符集是2000年的GB18030,它是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。目前简体windows的缺省内码还是GBK。

由于编码方案太多且彼此之间不兼容,存在互相之间存在冲突的情况,即对于同一个编码数值,在两种不同的编码方案中代表的是两个不同的字符。这样对于一些WEB应用来说,由于多种语言文字的同时使用及存储,需要采用一种统一的字符集。

为此,国际标准化组织(ISO)制定了ISO 10646码表,而Unicode协会制定了Unicode规范,这两个体系刚开始时是独立建立的,在1991年,双方都认识到世界不需要两个不兼容的Oracle字符集。于是它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。

从Unicode2.0开始,Unicode项目采用了与ISO 10646-1相同的字库和字码。目前两个项目仍都存在,并独立地公布各自的标准。Unicode协会现在的***版本是2006年的Unicode 5.0。

Oracle数据库的字符集

Oracle的字符集名字一般由以下部分组成:语言或区域、表示一个字符的比特位数、标准字符集名称(可选项,S或C,表示 服务器 或客户端)。Oracle字符集UTF8与UTFE不符合此规定,其它基本都是这种格式。

对于US7ASCII,表示区域是US,用7个比特位表示一个字符,标准的字符集名称为ASCII。

对于中文字符集ZHS16GBK,表示简体中文(ZHT为繁体中文),一个字符需要16位比特,标准的字符集名称为GBK。而ZHS16CGB231280表示简体中文,一个字符需要16位比特,标准的字符集名称为GB231280,属于我们前面提过的1981年发布的GB2312-80标准。

虽然我们说,GBK编码标准是GB2312编码标准的扩展,但是数据库字符集ZHS16GBK与ZHS16CGB231280之间却不是严格的超集与子集的关系,主要是有些汉字的编码在两个Oracle字符集中的数值是不同的,因此它们进行字符集转换时会出现问题。

在本文中,有时候使用的是标准字符集名称,有时候又需要使用Oracle字符集的名称,因此希望大家明白两者之间的对应关系。

Oracle数据库有国家字符集(national character set)与数据库字符集(database character set)之分。两者都是在创建数据库时需要设置的。

国家字符集主要是用于NCHAR、NVARCHAR、NCLOB类型的字段数据,而数据库字符集使用很广泛,它用于:CHAR、VARCHAR、CLOB、LONG类型的字段数据;表名、列名、PL/SQL中的变量名;输入及保存在数据库的SQL和PL/SQL的源码。

Oracle支持的Unicode字符集有以下几种,下面的列表给出了字符集的名称、对应的数据库版本范围、采用的Unicode的版本。

AL24UTFFSS:是Oracle***种支持Unicode的Oracle字符集,从7.2版本开始使用,但是它支持的Unicode版本为1.1,因此从9i开始就不支持此字符集了。

UTF8:是Oracle从Oracle8开始使用的属于UTF-8编码的字符集,从Oracle8.0到Oracle8.16,Unicode版本为2.1,而Oracle817到10g,采用的Unicode标准为3.0

UTFE:用于EBCDIC码平台上的数据库Unicode字符集。因此它属于专用系统使用的字符集,其它属性与UTF8基本相同。

AL32UTF8:是从Oracle9开始使用的属于UTF-8编码的字符集,与UTF8相比,它采用的Unicode版本更新,在10g版本中使用的是Unicode 4.01标准,而UTF8因为兼容性的考虑,在10g版本中用的是Unicode 3.0标准。

AL16UTF16:是Oracle***种采用UTF-16编码方式的字符集,从Oracle9开始使用,是作为缺省的国家字符集使用,它不能被用作数据库的字符集。

这是因为数据库的字符集决定了SQL与PL/SQL源码的编码方式,对于UTF-16这种使用固定的两个字节来表示英文字母的编码方案来说,确实不适于用作数据库的Oracle字符集,Oracle目前采用的数据库字符集都是基于ASCII或EBCDID作为子集的编码方案。

【编辑推荐】


oracle数据库中有哪些字符集,字符集之间的子集和超集关系是怎么样的?

oracle数据库的字符集有很多的,具体的也不能一一详细地列举出来了,但是,建库的时候,会有选择字符集的界面,点开下拉条,将会列出oracle所支持的所有字符集(10/12)。 超集与子集是包含和被包含的关系,超集兼容子集。

EAN-128和CODE-128有区别吗?具体区别在哪呢?

EAN-128码来自于CODE-128码,在字符集、条空规则上与CODE-128码完全一致,因此从介绍CODE-128码开始。 CODE-128码是一种用模块组配法编制的条码,三套字符集共可以表示128个符号,故称128码,字符集包含数字,大小写英文字母、符号、控制符和00-99的100个双位数的数字。 每个字符的条码符号由三条三空11个模块组成,终止符为四条三空13个模块。 下图是三个字符集的字符与条空结构对照表。 由图中可以看出,与商品条码的三个子集不同,三个字符集共用一套条空结构,每一个字符集都有107个符号,每一个符号都有一个字符值。 字符集A和字符集B中的字符大部分是重叠的,只有字符值64以后的符号不同,字符集A中包含了控制符,而字符集B中包含了小写字母;字符集C除了最后七个辅助字符外,只包含了100个双位数的数字,由00-99,其对应的字符值与字符本身相同。 CODE-128码的编码规则:一个CODE-128条码由左空白区、起始符、数据字符、校验符、终止符、右空白区和供人识读的字符构成。 EAN-128应用标识条码是一种连续型、非定长条码,能更多地标识贸易单元中需表示的信息,如产品批号、数量、规格、生产日期、有效期、交货地等。 EAN-128应用标识条码是使信息伴随货物流动的全面、系统、通用的重要商业手段。 那么CODE-128码和EAN-128码有什么区别呢?首先CODE-128条码可以用于任何管理系统中的自动识别,但EAN-128码必须用在EAN/UCC系统中,用来表示商品的储运单元或物流单元的信息,凡用EAN-128条码表示的内容必须符合EAN/UCC系统的规定,即带应用标识符的数据格式,否则就有可能造成条码生成错误或信息识读错误。 其次生成条码应选用专用条码软件。 现在很多企业做条码都是与装潢图案一起送广告制作公司制作,而广告公司基本上是使用平面设计软件里的条码插件生成条码,制作质量良莠不齐。 不过,在行业中应用最多的还是领跑条码标签设计软件。 有时也会遇上条码提供者说条码不能识别,按图中数字做出来的也与原图不一样,经分析发现条码中存在很多错误,最下面一行是按条空结构分析出的数据。 错误归纳为:1、使用了两个START C的起始符。 2、若用C字符集则不能表示英文字母,且字母M重复,数据00多出一组;3、没有经过字符转换就直接变为字符集C,未经转换又直接使用字符集A或B中的单个数字1;4、条码结尾的B不知从何而来,且没有终止符。 由于字符集A与字符集B中除了英文小写字母外,大部分符号是重叠的,所以一般情况下,如果条码包含字母、符号使用字符集B比较方便,当然如果条码中都是大写字母,使用字符集A与使用字符集B是一样的。 如果数据的开头部分是4个或4个以上连续的数字,则必须要使用字符集C,数据中间如果有4个或4个以上连续的数字也要变换为字符集C。 最后,用一句通俗的话来说EAN-128码和CODE-128码大差不差。 在领跑条码标签设计软件中拥有多种码制,包含EAN-128码和CODE-128码。 客户可根据需要自行选择。

java I/O中缓冲功能怎么回事??

缓存可以理解为暂时的容器:

我们把硬盘比作是存储水的缸:

内存就是存储水的盆:

缓存就是舀水的碗:

水的计量单位是滴。

那样就很好理解了 !

我们如果一滴一滴水的往硬盘里面放数据是不是很慢。如果一碗一碗的那就快多了!嘎嘎!

利用缓冲可以提高输入,输出的速度 不至于读的太多导致应用程序响应迟缓,也不至于写的时候慢的跟乌龟一样!简单说就这样

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐