环境变量NLS_LANG,实现页面中中文出现

2019-09-28 23:13栏目:网络技术
TAG:

主题材料:从数据库中读出的国语均为“?”
焚林而猎方案:
Step 1:注册 Code Page使SQL Server帮忙中文
1.复制文件C_936.nls到系统目录下的system32索引
2.使用Regedit32.exe增添以下键:
location: HKEY_LOCAL_MACHINEsystemCurrentControlSetControlNlsCode
Page
value name: 936
value: C_936.NLS
location: HKEY_LOCAL_MACHINEsystemCurrentControlSetControlNlsLang
uage
value name: 0804
value: l_intl.nls
3.利用简体中文字符集重新创建SQL server的Master数据库
Step 2.
在ASP程序的发端中投入一行:
<%@ codepage=936 %>
其一实施方案好处是不用安装中文平台系统,又能够安静运营NT(俄文集团版较
稳定)

在进行web开垦和oracle安装的进度中时常有人对字符集搞不清楚,因而对此做一下计算。

NLS_LANG是三个境遇变量,用于定义语言,地域以及字符集属性。对于非波兰语的字符集,NLS_LANG的装置就可怜关键。
NLS:‘National Language Support (NLS)’ 当大家设定一种nls的时候实在大家是为oracle在寄放数据时钦点了他的语种所特有的有的表明方式,比如大家挑选chinese,那么它的中文字符怎么样贮存,按怎么着准则排序,货币怎么着表示,日期格式也就被设定了。

1.首先个难题:字符集之间的不一样是如何呢?

 

  常见的字符集有:UTF-8和GBK

NLS_LANG参数由以下部分构成:NLS_LANG=<Language>_<Territory>.<Clients Characterset> NLS_Language 钦点: - Oracle(错误)消息的言语 - 日和月份的名称 注意:NLS_LANGUAGE与插入和询问的*数据*的言语非亲非故。
NLS_Territory 钦命: - 货币和数字格式 - 总括星期和时局的范围和常规
顾客端字符集(CLIENTS CHARACTE途睿欧SET): - 定义Oracle顾客端,客商利用使用的编码 * 或然它要顺应您Microsoft Windows代码页 (GUI工具的ACP, 命令提醒符的CHCP 值) * 或然为Unicode WIN32选取设置为UTF8/AL32UTF8。

  (1)GBK字符集

 

  • GBK的文字编码是双字节来表示的,即无论中、拉脱维亚语字符均使用双字节来代表,只不过为分裂汉语,将其最高位都定成1。
  • GBK包括全部中文字符;
  • GBK是在国标GB2312基础上扩大容积后卓殊GB2312的科班(好像还不是国标)
  • GBK是国家编码,通用性比UTF8差,但是UTF8占用的数据库比GBK大~

大范围的值能够参见Oracle Database Client Globalization Support

  (2)UTF-8字符集

 

  •   UTF-8编码则是用于减轻国际上字符的一种多字节编码,它对日文使用8位(即贰个字节),中文使用25人(多少个字节)来编码。对于塞尔维亚(Република Србија)语字符非常多的论坛则用UTF-8节省空间。
  • UTF-8则含有满世界全数国家须要动用的字符。
  • UTF-8编码的文字能够在多个国家各类扶助UTF8字符集的浏览器上海展览中心示。举例,要是是UTF8编码,则在瑞典人的乌Crane语IE上也能显得中文,而没有要求他们下载IE的中文语言扶助包。 所以,对于英语非常多的论坛 ,使用GBK则各种字符占用2个字节,而选取UTF-8意大利语却只占多个字节。
  • UTF8是国际编码,它的通用性比较好,葡萄牙人也得以浏览论坛

Windows中设置NLS_LANG

诚如的话,国内的种类一旦要保存汉字,日常会挑选使用GBK字符集,即使是想做网址等,全世界可访谈的体系,那么常常选择UTF-8。

1.发令提醒符中设置为意况变量

2.数据库中如何字符集供给安装?

假使你在命令行中设置NLS_LANG为蒙受变量,它将覆盖注册表和种类质量中的NLS_LANG的定义。在命令提醒符中,使用“set”命令,比方:

数据库分顾客端字符集数据库服务器字符集

 

而oracle的服务器字符集又有三种:正规字符集(日常意义上的数据库字符集)和国家字符集

LANGUAGE设置为华语时,提醒如下:

  1. 例行意义上的字符集(日常意义上的数据库字符集):

C:UsersTianPan>set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    (1)用来积存CHA悍马H2, VARCHARubicon2, CLOB, LONG等类型数据

 

    (2)用来标示诸如表名、列名以及PL/SQL变量等

C:UsersTianPan>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 11月 28 10:07:21 2014
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
SQL> conn scott/tiger 已连接。

    (3)用来累积SQL和PL/SQL程序单元等

SQL> select sysdate from dual;
SYSDATE -------------- 28-11月-14

    (4)一般为:AL32UTF8 或者 ZHS16GBK

 

  1. 江山字符集:

当Language设置为American时,提醒音信则变为土耳其共和国(The Republic of Turkey)语:

    (1)用以存款和储蓄NCHAWrangler, NVARCHACRUISER2, NCLOB等连串数据

C:UsersTianPan>set nls_lang=AMERICAN_AMERICA.ZHS16GBK

    (2)国家字符集实质上是为oracle选拔的增大字符集,主要效用是为着增强oracle的字符管理手艺,因为NCHA汉兰达数据类型能够提供对澳大塔尔萨联邦(Commonwealth of Australia)应用定长多字节编码的支持,而数据库字符集则无法。国家字符集在oracle9i中实行了重复定义,只好在unicode编码中的AF16UTF16和UTF第88中学选用,私下认可值是AF16UTF16

 

 

C:UsersTianPan>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Nov 28 10:07:51 2014
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
SQL> conn scott/tiger Connected. SQL> select sysdate from dual;
SYSDATE ------------ 28-NOV-14

3.字符集查看方法

在Windows下通过set nls_lang来设置,只是Session级其他,关闭cmd窗口后再展开,就又成为原本的装置了。如需永久生效,能够修改注册表的参数。

数据库字符集:select * from nls_database_parameters;

 

客商端字符集:select * from nls_instance_parameters;

2.注册表设置(永世生效)

 

暗中同意情状下,windows上的Oracle安装使用注册表来定义这么些设置。 版本 10g 及以上: HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_<oracle_home_name> 这里您会看见二个条条框框名叫NLS_LANG

数据库字符集的表示方法为:

在陆十个人windows平台上设置三贰九位软件,会使用叁十六人包容性路线 HKEY_LOCAL_MACHINESOFTWAREWow6432NodeORACLEKEY_<oracle_home_name>

SIMPLIFIED CHINESE_CHINA.AL32UTF8

 

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

3.操作系统情形变量

 

尽管注册表是Microsoft Windows设置的要害囤积地方,它不是独一无二能够安装参数的地点。

要是客户端字符集和数据库字符集不雷同期,通过plSql登入时会提醒如下错误:

即使不引入,但您可以设置NLS_LANG为系统个性中的系统大概客户变量。这一个设置会被有着Oracle home使用。

图片 1

安装岗位: '作者的Computer' -> '属性' > '高端'  -> '情况变量'

 

 

4.顾客端字符集设置方法

因为这一个情形变量比注册表中早就设置的参数品级高,所以独有你有十一分好的理由不然不要在那么些地点设置Oracle参数。

    31位客商端:  HKEY_LOCAL_MACHINESOFTWAREORACLE

 

    六十四位客户端:HKEY_LOCAL_MACHINESOFTWAREWow6432NodeORACLEKEY_OraClient11g_home1

Linux/Unix下的设置

 

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

5.建议的字符集是哪些?

export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

   数据库字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK(国内大多数数据库依然oracle多,假诺做网址的话仍旧建议使用UTF-8字符集)

 

   国家字符集:SIMPLIFIED CHINESE_CHINA.AL16UTF16

DB中的NLS_LANG DB也是有本身的NLS_LANG参数,来标志数据库的言语,地域,字符集。能够通过以下的SQL来查得, SELECT * FROM v$nls_parameters;  OR SELECT USERENV ('language') FROM DUAL;
顾客端的NLS_LANG和DB的NLS_LANG DB的NLS_LANG和客商端处境变量中NLS_LANG尽也许的保持一致。Setting the NLS_LANG Environment Variable for Oracle Databases 提供了什么保持一致的方法。 那么为啥要保持一致呢?那是因为一旦字符集不包容,有希望在DB和Client间互为调换的长河中,出现字符调换错误的状态。比方Oracle nls_lang tips中举的事例。

   客商端字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

更详尽的剧情能够参照他事他说加以考察上边这么些素材:

   网页字符集:UTF-8

Microsoft Windows 环境中NLS_LANG的不易安装 (Doc ID 1577370.1)

 

在 Unix 情状中准确安装 NLS_LANG (Doc ID 1548858.1)

通超过实际验,不会冒出乱码。

NLS_LANG Explained (How does Client-Server Character Conversion Work?) (Doc ID 158577.1)

 

NLS_LANG FAQ

参照他事他说加以考察小说:

Oracle Database Client Globalization Support Setting the NLS_LANG Environment Variable for Oracle Databases

  1. oracle 字符集查看与修改

Oracle nls_lang tips

作者:sdjnzqr
出处:
版权:本文版权归作者和搜狐共有
转发:接待转发,但未经小编同意,必需保留此段申明;必需在篇章中付出原来的作品连接;不然必究法律义务

版权声明:本文由澳门新葡亰平台游戏发布于网络技术,转载请注明出处:环境变量NLS_LANG,实现页面中中文出现