欢迎投稿

今日深度:

字符集,字符编码

字符集,字符编码


查看数据库当前字符集
SELECT SYS_CONTEXT ('USERENV', 'language') from dual;


数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件

注册表中字符集的修改:       

注册表中HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_ home1 : nls_lang为SIMPLIFIED CHINESE_CHINA.ZHS16GBK

将注册表中nls_lang改为SIMPLIFIED CHINESE_CHINA.AL32UTF8


字符集与编码是什关系?

这个问题其实很简单,你所说的字符集和编码对初学者而言就是一回事。

人可以直接使用汉字,但计算机只认得0和1的二进制代码。

编码就是:把汉字跟0和1的二进制代码组合进行一一对应的过程。因为0和1的组合方式非常多,所以你可以编码,别人也可以编,对不对?这就带来了另一个概念↓

字符集:由权威机构进行编码而形成的编码集合就叫字符集。例如:中文的字符集GB2312就是中国政府自己编出来的;台湾当然不服,所以他们也自己编码(大名鼎鼎的BIG5)

接下来我再说一下Unicode和ANSI到底是怎么回事?

字符集的根本就是编码的方法,大家各自的编码方法都不相同,这对电脑的普及和互联造成了非常大的困扰。这时美国老大站出来推出了一种双字节编码的标准叫做:ANSI!中国的GB2312就符合ANSI的标准。

中国的ANSI是GB2312,日本的ANSI则是JIS;中文的ANSI编码只认中国字,日本的一样只认日本字。所以这种编码标准虽然统一了编码方法,但没有解决不同字符集的兼容问题。

这时就出现了Unicode编码,一个各种语言通吃的编码。当然这种编码如此强大也是付出了代价的,那就是长度!

目前默认的字符集和编码是:GB2312和ANSI

字符集一般都在文件保存时手动指定,或者是软件的默认值一般都会使GB2312,当然部分软件是可以手动指定的。例如:outlook可以在高级选项中手动设置编码。

编码无法手动添加!现在都用的是windows,他给你什么你就只能用什么。
你在windows里面添加其他语言支持,就会添加相应语言的字符编码,当然是他给你什么你就用什么,这里无法自定义。
除非你安装了某些很特殊的软件,例如:IBM深蓝的数控软件,他会安装IBM特殊的字符集到你的电脑上。而这个字符集只能IBM的数据软件能用,其他软件一概不认。

最后废话:如果想在windows系统上体验各种不同字符集的区别,你需要特殊的软件。记事本、word这种对字符集完全残废的软件是不行的,推荐gvim想学可以尝试下。

 

字符集与编码是什关系?

这个问题其实很简单,你所说的字符集和编码对初学者而言就是一回事。

人可以直接使用汉字,但计算机只认得0和1的二进制代码。

编码就是:把汉字跟0和1的二进制代码组合进行一一对应的过程。因为0和1的组合方式非常多,所以你可以编码,别人也可以编,对不对?这就带来了另一个概念↓

字符集:由权威机构进行编码而形成的编码集合就叫字符集。例如:中文的字符集GB2312就是中国政府自己编出来的;台湾当然不服,所以他们也自己编码(大名鼎鼎的BIG5)

接下来我再说一下Unicode和ANSI到底是怎么回事?

字符集的根本就是编码的方法,大家各自的编码方法都不相同,这对电脑的普及和互联造成了非常大的困扰。这时美国老大站出来推出了一种双字节编码的标准叫做:ANSI!中国的GB2312就符合ANSI的标准。

中国的ANSI是GB2312,日本的ANSI则是JIS;中文的ANSI编码只认中国字,日本的一样只认日本字。所以这种编码标准虽然统一了编码方法,但没有解决不同字符集的兼容问题。

这时就出现了Unicode编码,一个各种语言通吃的编码。当然这种编码如此强大也是付出了代价的,那就是长度!

目前默认的字符集和编码是:GB2312和ANSI

字符集一般都在文件保存时手动指定,或者是软件的默认值一般都会使GB2312,当然部分软件是可以手动指定的。例如:outlook可以在高级选项中手动设置编码。

编码无法手动添加!现在都用的是windows,他给你什么你就只能用什么。
你在windows里面添加其他语言支持,就会添加相应语言的字符编码,当然是他给你什么你就用什么,这里无法自定义。
除非你安装了某些很特殊的软件,例如:IBM深蓝的数控软件,他会安装IBM特殊的字符集到你的电脑上。而这个字符集只能IBM的数据软件能用,其他软件一概不认。

最后废话:如果想在windows系统上体验各种不同字符集的区别,你需要特殊的软件。记事本、word这种对字符集完全残废的软件是不行的,推荐gvim想学可以尝试下。

 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3844.html NewsArticle 字符集,字符编码 查看数据库当前字符集 SELECT SYS_CONTEXT ('USERENV', 'language') from dual; 数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。 客户端字...
评论暂时关闭