电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

怎样选择数据库的字符集

7页
  • 卖家[上传人]:luobi****88888
  • 文档编号:92925495
  • 上传时间:2019-07-14
  • 文档格式:DOC
  • 文档大小:31KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、选择ORACLE数据库字符集如何选择数据库的字符集是一个有争议的话题,字符集本身涉及的范围很广,它与应用程序、客户的本地环境、操作系统、服务器等关系很密切,因此要做出合适的 选择,需要明白这些因素之间的关系。另外对字符集的基本概念,ORACLE数据库字符集的一些知识也需要了解。 随着国内的软件产品逐步走向海外,对于多语言的支持已经成为软件的一个基本要求,采用UNICODE标准也逐渐成为通用的设计方案,此时ORACLE数据 库的字符集应该如何选择?很多人都有自己的见解,在网上也可以看到很多关于字符集的文章。这些文章有很多精华值得去学习,但是另一方面还存在一些错误,尤 其对UNICODE,存在一些概念不清的地方。 数据库字符集的选择并不存在绝对意义上的正确或错误,每种字符集都有它适用的环境。对于我们来说,了解得越多,越能帮助自己做出适当地选择,而且可以采取 措施去主动防范或规避可能出现的问题。反之,如果数据库字符集选择不恰当,会给后面的工作带来很多的麻烦,需要花费很多时间和精力去解决问题,有些问题甚 至会影响到客户的业务使用。本文希望可以给大家提供一些相对全面的知识,方便大家了解数据库字符

      2、集的相关概念,因此有些繁琐,请大家见谅。另外由于个人的 局限,有何不妥之处还请大家不吝指正。下面我们由浅入深,先由概念入手,再给出几种常用的字符集设置建议,对一些可能遇到的问题做出分析,最后给出自己的建议。 1、字符集的一些基本知识 讲到数据库的字符集设置,首先需要对字符集的知识有些了解。以下是字符集的基本知识介绍:由于计算机只能存储使用二进制数据,因此对于一些字符或符号,需要对它们进行编码,用编码后的数值来表示这些字符。对于一组符号的编码集合就是字符集。 字符集有很多种,最初的字符集是ASCII,它用一个字节中的7位来表示128个字符,第8位没有使用。它包括大小写字母、数字0-9、标点符号、非打印 字符(换行符、制表符等4个)以及控制字符(退格、响铃等)等。由于ASCII支持的字符很有限,因此随后又出现了很多的编码方案,这些编码方案大部分都 是包括了ASCII的,它们只是做了扩展,这些扩展的内容一般各不相同,因此说ASCII是一个比较基本的编码,EBCDIC编码是另一个比较基本的编 码,它的部分字符采用了和ASCII不同的编码值,因此两者是不兼容的基本编码方案。采用EBCDIC编码的

      3、比较少,目前主要是IBM 的系统采用,如AS400及S390系统,大部分的系统都是基于ASCII编码的。 由于亚洲国家的字符集相对复杂一些,因此一般都使用了两个及以上的字节进行编码的方案。对于简体中文,GB2312码是国家1981年实施的编码标准,通 行于大陆。新加坡等地也使用此编码。GBK编码是GB2312码的扩展,是1995年发布的指导性规范,它在字汇一级支持 ISO/IEC 10646-1 和GB 13000-1 的全部中日韩 (CJK) 汉字(20902字)。目前最新的汉字字符集是2000年的GB18030,它是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还 收录了藏文、蒙文、维吾尔文等主要的少数民族文字。目前简体WINDOWS的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不 过GB18030相对GBK增加的字符,普通人是很难用到的,因此GBK还是我们目前最常用的简体中文字符集。 由于编码方案太多且彼此之间不兼容,存在互相之间存在冲突的情况,即对于同一个编码数值,在两种不同的编码方案中代表的是两个不同的字符。这样对于一些 WEB应

      4、用来说,由于多种语言文字的同时使用及存储,需要采用一种统一的字符集。为此,国际标准化组织(ISO)制定了ISO 10646码表,而Unicode协会制定了Unicode规范,这两个体系刚开始时是独立建立的,在1991年,双方都认识到世界不需要两个不兼容的字 符集。于是它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从Unicode2.0开始,Unicode项目采用了与ISO 10646-1相同的字库和字码。目前两个项目仍都存在,并独立地公布各自的标准。Unicode协会现在的最新版本是2006年的Unicode 5.0。ISO的最新标准是10646-3:2003。下面简单介绍一下几种常见的编码方式: UCS(Universal Character Set)是按ISO-10646定义的字符集,有两种最常用编码方式: UCS-2和UCS-4。 UCS-2:使用0-65535之间的数表示一个unicode字符。UCS-2无法表示所有的unicode字符,只能表示其前65536个字符(称为 Basic Multilingual Plane,BMP)。我们一般经常使用的UNICOD

      5、E码就是指这个编码方案。 UCS-4:使用0-FFFFFFFF之间的数表示一个unicode字符,但为了和unicode体系兼容(unicode体系是一个20bit系 统),ISO-10646表示所有定义的字符将不超过10FFFF。UCS-4可以表示所有的unicode字符。Unix 下使用 UCS-2/UCS-4会导致非常严重的问题,因为有一些特殊的字符, 比如 0 或 /, 它们在文件名和其他C的库函数参数里都有特别的含义,C语言使用0作为字符串结尾,而Unicode里恰恰有很多字符都有一个字节为0,这样一 来,C语言的字符串函数将无法正常处理Unicode,除非把世界上所有用C写的程序以及他们所用的函数库全部换掉 。 为了解决这个问题,于是产生了将Unicode编码规则和计算机的实际编码对应起来的一个规则,UTF,英文为UCS Transformation Format,即UCS转换格式,目前常用的有UTF-8、UTF-16、UTF-32三种。(还有UTF-7在此就不介绍了)。正如名字所示,它们分别 使用8位、16位、32位比特对UCS进行编码。 UTF-8:一种变长的Unico

      6、de编码方式,使用1到4个字节表示一个字符。这种方式的最大好处,是UTF8保留了ASCII字符的编码作为它的一 部分,因此在ASCII表示的128个字符在UTF-8的编码没有变化,它的兼容性比较好。UTF-8在目前WEB应用上使用很广泛。 UTF-16:一种变长Unicode编码方式,使用两个或者四个字节表示一个字符。这种编码方式比较节省空间,因为它把最常使用的字符都用两个字节来表示,而那些不常用的字节则用两个或四个字节来表示。但对于英文字符来说,它要用两个字节来编码。 UTF-32:一种固定长度的Unicode编码方式,使用四个字节表示一个字符,它适用在内存很充足,需要定长的编码场合。 2、ORACLE数据库的字符集 ORACLE的字符集名字一般由以下部分组成:语言或区域、表示一个字符的比特位数、标准字符集名称(可选项,S或C,表示服务器或客户端)。ORACLE字符集UTF8与UTFE不符合此规定,其它基本都是这种格式。 对于US7ASCII,表示区域是US,用7个比特位表示一个字符,标准的字符集名称为ASCII。 对于中文字符集ZHS16GBK,表示简体中文(ZHT为繁体中文),一

      7、个字符需要16位比特,标准的字符集名称为GBK。而 ZHS16CGB231280表示简体中文,一个字符需要16位比特,标准的字符集名称为GB231280,属于我们前面提过的1981年发布的 GB231280标准。虽然我们说,GBK编码标准是GB2312编码标准的扩展,但是数据库字符集ZHS16GBK与ZHS16CGB231280之 间却不是严格的超集与子集的关系,主要是有些汉字的编码在两个字符集中的数值是不同的,因此它们进行字符集转换时会出现问题。 在本文中,有时候使用的是标准字符集名称,有时候又需要使用ORACLE字符集的名称,因此希望大家明白两者之间的对应关系。 ORACLE数据库有国家字符集(national character set)与数据库字符集(database character set)之分。两者都是在创建数据库时需要设置的。国家字符集主要是用于NCHAR、NVARCHAR、NCLOB类型的字段数据,而数据库字符集使用很 广泛,它用于:CHAR、VARCHAR、CLOB、LONG类型的字段数据;表名、列名、PL/SQL中的变量名;输入及保存在数据库的SQL和PL /S

      8、QL的源码。 ORACLE支持的Unicode字符集有以下几种,下面的列表给出了字符集的名称、对应的数据库版本范围、采用的Unicode的版本。 字符集 对应的数据库版本范围 Unicode的版本 字符集 对应的数据库版本范围 Unicode的版本 AL24UTFFSS 7.2-8.1 1.1 UTF8 8.0-10g 2.1 (8.0-8.1.6) 3.0 (8.1.7-10g) UTFE 8.0-10g 2.1 (8.0-8.1.6) 3.0 (8.1.7-10g) AL32UTF8 9.0-10g 3.0 (9.0) 3.1 (9.2) 3.2 (10.1) 4.01(10.2) AL16UTF16 9.0-10g 3.0 (9.0) 3.1 (9.2) 3.2 (10.1) 4.01(10.2) AL24UTFFSS:是ORACLE第一种支持Unicode的字符集,从7.2版本开始使用,但是它支持的Unicode版本为1.1,因此从9i开始就不支持此字符集了。 UTF8:是ORACLE从ORACLE8开始使用的属于UTF-8编码的字符集,从ORACLE8.0到ORACLE8.1

      9、6,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源码的编码方式,对于UTF16这种使用固定的两个字节来表示英文字母的编码方案来说, 确实不适于用作数据库的字符集,ORACLE目前采用的数据库字符集都是基于ASCII或EBCDID作为子集的编码方案。 从以上几种字符集的介绍来看,Unicode字符集一般使用UTF8和AL32UTF8。如果数据库版本都在9i及其以上,不需要考虑ORACLE8的数 据库,建议使用AL32UTF8字符集,它采用的Unicode标准要比UTF8采用的Unicode标准更新,支持的字符也更多一些。如果要考虑 ORACLE8数据库,建议使用UTF8字符集,它的兼容性好,在ORACLE8及8I数据库上使用AL32UTF8字符集容易出现问题。 3、如何选择合适的数据库字符集 前面我们介绍了字符集的一些概念,并对ORACLE数据库的常用几个字符集有了一些了解,下面就具体对数据库字符集的选择阐述一些个人的观点: 3.1、数据库需要存储的数据类型是字符集选择的首要考虑目标。 由于数据库的主要功能在于存储数据,因此要保

      《怎样选择数据库的字符集》由会员luobi****88888分享,可在线阅读,更多相关《怎样选择数据库的字符集》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.