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 ...
随机推荐
- Android高手速成--第三部分 优秀项目
主要介绍那些Android还不错的完整项目,目前包含的项目主要依据是项目有意思或项目分层规范比较好.Linux项目地址:https://github.com/torvalds/linuxAndroid ...
- JavaScript类型判断instanceof与typeof对比
经常有人会在JavaScript里写如下的方法: function checkType() { var s1 = 123; var s2 = "OK"; if (s1 instan ...
- Win10环境下安装Vmware+Ubuntu14 注意点
下载相关软件正常安装完成后可能会碰到以下两个问题,这里备注一下,备用 1.Ubuntu的root密码设置 2.Vmware网络连接设成桥接之后,Win10可以ping通Ubuntu,但Ubuntu无法 ...
- access日期与sql server日期区别
如选取一段时间内的数据,time1和time2是时间起始字符串,则 sql server命令: string strSQL=" 日期 >='"+time1+"' A ...
- mac brew install redis 报错
mac brew install redis 报错 /usr/local/opt/php55/bin/phpize /usr/local/opt/php55/bin/phpize: line 61: ...
- NEFU 561 方块计算
题目链接 简单搜索题 #include <cstdio> #include <iostream> #include <cstring> using namespac ...
- 微信开发中网页授权access_token与基础支持的access_token异同
问题1:网页授权access_token与分享的jssdk中的access_token一样吗? 答:不一样.网页授权access_token 是一次性的,而基础支持的access_token的是有时间 ...
- 日期与时间戳相互转化(js)
function datetime_to_unix(datetime){ var tmp_datetime = datetime.replace(/:/g,'-'); tmp_date ...
- Hadoop学习笔记(2) 关于MapReduce
1. 查找历年最高的温度. MapReduce任务过程被分为两个处理阶段:map阶段和reduce阶段.每个阶段都以键/值对作为输入和输出,并由程序员选择它们的类型.程序员还需具体定义两个函数:map ...
- 未能加载文件或程序集“System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。
Nuget程序包管理 —>程序包管理控制台,运行以下命令即可:Update-Package Microsoft.AspNet.WebApi -reinstall