Oracle数据库字符集试验
对于初学者我们可以理解字符集就是一种字符编码方式,试想人可以直接语言进行交流,使用文字进行记录,而计算机却不认得我们人类创立的文字,计算机只认得0和1这样的二进制代码。当我们要通过计算机记录文字信息的时候,就需要有一种方式能够让计算机能够识得我们文字的输入,这就产生了编码。编码就是把我们日常使用的文字和计算机中的0和1对应起来,通过计算机的0和1的不同组合来对应到不同的文字。由于0和1的组合方式有很多加之有不同的人编码,所以就会产生很多不同的编码方式(你可以编码,别人也可以以进行编码嘛)。由权威机构进行编码而形成的编码集合称之为字符集,例如,中文的字符集GB2312就是由中国政府自己编出来的,台湾对此当然不服,所以他们也进行了汉字的编码,那就是大名鼎鼎的大五码(BIG5)。
字符集的根本就是编码的方法,大家各自的编码方法都不相同,这对电脑的普及和互联造成了非常大的困扰。这时美国老大站出来推出了一种双字节编码的标准叫做:ANSI!中国的GB2312就符合ANSI的标准。中国的ANSI是GB2312,日本的ANSI则是JIS;中文的ANSI编码只认中国字,日本的一样只认日本字。所以这种编码标准虽然统一了编码方法,但没有解决不同字符集的兼容问题。 这时就出现了Unicode编码,一个各种语言通吃的编码。当然这种编码如此强大也是付出了代价的,那就是长度!
Unicode编码也称为统一码、万国码、单一码,是一种在计算机上使用的字符编码。它使用16位的编码空间,也就是每个字符占用2个字节,这样理论上一共最多可以表示65,536(2的16次方)个字符,基本满足各种语言的使用。实际上目前版本的Unicode尚未填充满这16位编码,保留了大量空间作为特殊使用或将来扩展使用,主要用于满足跨语言、跨平台进行文本转换、处理的要求,比如某软件平台的转换,从Windows到Liunx上。
演示一个插入插叙产生乱码的过程:
我们知道产生乱码的原因主要是需要显示文字的编码与客户端的编码不对应造成的,导致需要显示的字符在当前客户端中找不到对应的编码,只好以乱码显示。在Oracle中,当输入文字到Oracle,Oracle会认为当前文字的编码方式是按照客户端的NLS_LANG参数指定的编码方式编码的,那么Oracle会查询当前服务中的字符集,如果两方不一致时就会自动转换。当客户端NLS_LANG指定的字符集与操作系统不一致时,那么这种转换就会发生错误,具体是 操作系统-->客户端NLS_LANG-->服务器的字符集。




演示相同字符在不同字符集下对应的编码不同的例子


另开一个会话,设置客户端字符集为AL32UTF8,向表中插入相同字符:


我们分别在两个不同的会话中查询数据:


查看一下相同字符在操作系统中的字符编码:

将客户端设置为不同的字符集,演示导入/导出可能产生的乱码问题




~~~~~延伸:
GB2312是中国国家标准总局发布,于1981年5月实施。目前通行于中国大陆和新加坡。 GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。 2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。 现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。 现在很多软件编程都还是使用GB2312为主。因为兼容性好!不容易出现乱码。系统语言包里基本都是用GB2312的!
BIG5又叫大五码:是台湾计算机界实行的汉字编码字符集。它包含了 420 个图形符号和 13070 个汉字(不包含简化汉字)。 是在1984年由台湾财团法人资讯工业策进会和五家有意愿共同推动电脑中文化的资讯公司所共同创立,故称大五码。五家公司为:宏碁、神通、佳佳、零壹及大众。
Big5也是繁体的意思,GB是简体的意思。
Oracle数据库字符集试验的更多相关文章
- oracle数据库字符集的修改
本文摘自:http://blog.csdn.net/nsj820/article/details/65711051.改客户端字符集:通过WINDOWS的运行菜单运行Regedit,修改注册表 Star ...
- 选择ORACLE数据库字符集
如何选择数据库的字符集是一个有争议的话题,字符集本身涉及的范围很广,它与应用程序.客户的本地环境.操作系统.服务器等关系很密切,因此要做出合适的 选择,需要明白这些因素之间的关系.另外对字符集的基本概 ...
- linux下oracle数据库字符集修改
linux下oracle数据库字符集修改 0.RHEL6.7.oracle11gr2 1.登录oracle.在安装oracle的用户下进入数据库. $ sqlplus / as sysdba 2.查询 ...
- Oracle数据库字符集问题解析
Oracle数据库字符集问题解析 经常看到一些朋友问ORACLE字符集方面的问题,我想以迭代的方式来介绍一下.第一次迭代:掌握字符集方面的基本概念.有些朋友可能会认为这是多此一举,但实际上正是由于对相 ...
- ORACLE数据库字符集处理
简介: ORACLE数据库字符集,即Oracle全球化支持(Globalization Support),或即国家语言支持(NLS)其作用是用本国语言和格式来存储.处理和检索数据.利用全球化支持,OR ...
- Oracle数据库字符集问题
Oracle数据库的字符集问题,也涉及作为服务器操作系统的CentOS或者Windows的字符集与Oracle字符集之间的关联关系Oracle的字符集,这个问题的提出是因为两个原因:一是遇到一个DMP ...
- oracle数据库字符集
Oracle字符集的基本原理 1. Oracle服务器字符集 oracle以哪种字符编码存储字符,可以通过以下语句查出数据库字符集的设置. 方法1 SQL> select * from v$nl ...
- Oracle数据库字符集修改
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.一般来说,数据库字符集在安装数据库实例时就 ...
- Linux下修改Oracle数据库字符集命令
常见情形:从服务器备份Oracle数据库后再到本地机器上还原Oracle数据库的时候经常会碰见数据库字符编码不一致的情况,可以用以下命令来修改本地的Oracle数据库字符编码,然后顺利还原Oracle ...
随机推荐
- Linux下安装和配置JDK与Tomcat(升级版)
在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...
- DPM算法源程序voc-release5在Windows中的配置修改过程
最近的<视频处理与分析>课程中有一个大作业,是有关DPM物体检测算法的.网上有DPM的源代码,但是原版只能在Linux或Mac上运行,而我的电脑是Windows系统,于是在网上搜了一下在怎 ...
- PYTHON 写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。
def shifou_space(args): ret = True for a in args: if a.isspace(): ret = False break return ret resul ...
- [转]hql 语法与详细解释
HQL查询:Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hib ...
- Odd Even Linked List
Given a singly linked list, group all odd nodes together followed by the even nodes. Please note her ...
- java6
1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C: ...
- android BitMap回收
第一种方法--及时回收bitmap内存: 一般而言,回收bitmap内存可以用到以下代码 if(bitmap != null && !bitmap.isRecycled()){ bit ...
- Quartz资源收藏
项目中使用Quartz集群分享 : http://hot66hot.iteye.com/blog/1726143 发布 Quartz Job Scheduling Framework 中文 PDF 版 ...
- (转: daifubing的博客 )Delphi二维码中文支持、分组、批量打印经验小结
一直也没接触到什么复杂的报表,都是一些简单的报表,在DelphI下使用QuickReport一般也就能满足需要了,由于公司现在需求的变化,对条码扫描提出了新的要求,主要是扫码要包含更多地内容,以前的一 ...
- 如何让页眉随章节的不同而变化(Word 2010)
在一般情况下,我们将页眉设置完成后,所有章节的页眉都是一样的. 但在某些时候,我们需要让不同的章节拥有各自不同的页眉.那么该如何设置呢? 1. 我们以下图的文件为例,该文件一共包括4个实验,暂未设置页 ...