`

解决oracle客户端乱码——SQLPLUS乱码问题

阅读更多
要解决Oracle的客户端乱码问题关键是要把服务器端使用的字符集跟客户端使用的字符集统一起来。Oracle客户端(Sqlplus)通过NLS_LANG环境变量来确定客户端使用的字符集。NLS_LANG参数由以下部分组成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>
NLS_LANG各部分含义如下:
LANGUAGE指定:
-Oracle消息使用的语言
-日期中月份和日显示
TERRITORY指定
-货币和数字格式
-地区和计算星期及日期的习惯
CHARACTERSET:
-控制客户端应用程序使用的字符集
通常设置或者等于客户端(如Windows)代码页
或者对于unicode应用设置为UTF8

在Windows上查看当前系统的代码页可以使用chcp命令:
E:\>chcp
活动的代码页: 936

代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接:
http://www.microsoft.com/globaldev/reference/dbcs/936.htm


2. 查看 NLS_LANG 的方法
Windows使用:

echo %NLS_LANG%
如:
E:\>echo %NLS_LANG%
AMERICAN_AMERICA.ZHS16GBK

Unix使用:

env|grep NLS_LANG
如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK

PLSQL Developer之类Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多个ORACLE_HOME时系统编号。


3. 查看数据库当前字符集参数设置
SELECT * FROM v$nls_parameters;

select * from nls_database_parameters

select userenv(‘language’) from dual;

4. 查看数据库可用字符集参数设置
SELECT * FROM v$nls_valid_values;


5. 客户端 NLS_LANG 的设置方法
Windows:
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通过修改注册表键值永久设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG

Unix:
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export NLS_LANG="Simplified Chinese_china".ZHS16GBK
可以编辑 bash_profile 文件进行永久设置
vi .bash_profile
NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG
# 使 bash_profile 设置生效
source .bash_profile

原文地址:http://hi.baidu.com/dearhwj/blog/item/2cb858257ba30c6834a80f86.html
分享到:
评论

相关推荐

    oracle11g sqlplus解决退格方向键输入乱码问题

    包含termcap-1.3.1.tar.gz,readline-6.2.tar.gz,rlwrap-0.37.tar.gz包 libtermcap-2.0.8-47.i386.rpm readline-devel-5.2-13.fc9.i386.rpm...按照里面说明文档操作即可,可以解决sqlplus下面退格,方向键输入乱码问题

    oracle 客户端不支持中文解决办法

    ### Oracle客户端中文显示问题及解决方案 #### 问题背景与描述 在Linux环境下安装Oracle数据库时,如果默认的字符集设置为WE8ISO8859P1,将无法支持中文字符。具体表现为,在客户端录入中文数据时能够正常显示,但...

    解决Oracle XE中文乱码问题

    ### 解决Oracle XE中文乱码问题 #### 背景与问题概述 在使用轻量级数据库Oracle XE的过程中,部分用户可能会遇到中文字符显示为乱码的问题。这一问题通常发生在数据库设置...希望这些信息能够帮助您顺利解决问题。

    centos7下Oracle12中文乱码的问题

    替换oracle解压之后的database文件中的filegroup2文件 路径 :database/stage/Components/oracle.jdk/1.6.0.75.0/1/DataFiles

    Oracle导出成csv格式后显示乱码的解决方法

    在Oracle数据库环境中,导出数据为CSV(Comma Separated Values)格式时,有时可能会遇到中文显示为乱码的问题。这通常与字符编码不匹配有关。以下是一套详细的解决步骤和相关知识点: 1. **字符编码问题**: CSV...

    解决linux环境下sqlplus乱码的方法

    本篇文章将详细介绍如何解决在Linux环境下SQL*Plus出现的乱码问题。 首先,我们需要了解Linux系统的字符编码。Linux默认使用UTF-8作为系统编码,而SQL*Plus则可能根据Oracle数据库的字符集进行显示。如果两者不一致...

    Oracle 10g客户端v10.2.0.3.0中文精简版(支持32 x64位).rar

    Oracle 10g客户端v10.2.0.3.0 64位/32位是一款非常好用且功能强大的主要用于oracle数据库的开发和编辑等操作的软件,这个精简版本从官方的oracle客户端中提取,软件解压后就可以运行,操作方法也比较简单,可以...

    RedHat5.4Oracle11gSqlplus中文乱码解决.doc

    综上所述,解决Red Hat 5.4上Oracle 11g Sqlplus的中文乱码问题需要综合考虑系统级别的中文支持、环境变量配置以及客户端终端的设置。按照上述步骤操作后,应该能有效解决在各种场景下遇到的中文乱码问题。

    oracle 使用sqlplus导入大sql文件(实战)

    oracle 使用sqlplus导入大sql文件,需熟悉linux命令,批量导入sql文件以及导入乱码解决方案

    Linux下Oracle中SqlPlus时上下左右键乱码问题的解决办法

    通过以上步骤,你可以成功解决Linux下Oracle SqlPlus使用时的方向键乱码问题,提高你的工作效率。记住,保持系统更新和正确配置是避免这类问题的关键。如果你遇到其他问题,查阅官方文档或在线社区通常都能找到解决...

    linux安装oracle 11g乱码(图解)

    本篇文章将详细解析三种解决Linux安装Oracle 11g乱码的方法。 方法一:调整Linux系统的字符集设置 1. 首先,确认当前Linux系统的字符集,可以通过`locale`命令查看: ``` locale ``` 2. 如果发现字符集不支持中文,...

    Linux下sqlplus退格、上翻键乱码工具

    通过以上步骤,你应该能够在Linux环境下成功安装并使用`rlwrap`,解决SQL*Plus中的退格和上翻键乱码问题。这样,你可以更加高效地在命令行中进行数据库操作,提升工作效率。记住,对于任何终端问题,检查和调整终端...

    Linux上Oracle安装前汉字乱码和安装后创建数据库乱码的解决方法(含附件)

    以下是一份详细的解决此类问题的指南,旨在帮助你顺利进行Oracle安装并创建无乱码的数据库。 首先,我们要理解汉字乱码的根源。在Linux系统中,字符编码通常是UTF-8,而Oracle数据库默认可能使用的是其他字符集,如...

    oracle乱码?号改成中文 +环境配置

    - 如果以上方法都无法解决问题,可以考虑将数据库中的所有字符字段改为Unicode编码(如UTF-8),这样可以最大程度地避免字符集不兼容导致的问题。 #### 四、总结 通过上述方法,可以有效地解决Oracle数据库中出现...

    Oracle中文乱码,字符集问题处理

    这里将告诉您Oracle中文乱码,字符集问题处理,具体实现方法:  1. 右键计算机,选择属性,增加环境变量 NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK  2.进入注册表,依次单击HKEY_LOCAL_MACHINE –&gt;...

    Oracle数据库使用sqlplus时的连接错误与方向键乱码解决

    在使用Oracle数据库时,我们经常会使用sqlplus...记住,每个错误都有其特定的原因,因此在解决问题时,理解错误信息、检查相关配置文件以及确保服务正常运行是关键步骤。通过逐步排查和调整,大部分问题都能迎刃而解。

    解决linux下sqlplus 退格,回车乱码

    为了解决这个问题,我们可以借助于`readline`库和`rlwrap`工具。 `readline`库是一个强大的命令行输入处理库,它提供了诸如历史搜索、编辑、补全等功能。在SQL*Plus中,如果能利用readline库,用户在输入SQL命令时...

    解决sqlplus 删除键,方向键扥乱码

    通过上述方法,你应该能够解决SQL*Plus中的乱码问题,使删除键和方向键正常工作。在实际操作过程中,请根据你的具体系统环境进行相应的调整。如果问题依然存在,可能需要进一步排查硬件、驱动程序或其他软件兼容性...

    liunx+oracle下解决不能用backspace删除只能用del删除和上下键使用出现乱码

    本文将详细介绍如何解决这些困扰,并提供实际的步骤来帮助读者快速定位并解决问题。 #### 一、问题概述 在Linux系统中,当使用Oracle数据库工具如`sqlplus`等时,有时会遇到Backspace键不起作用的问题,即无法像在...

Global site tag (gtag.js) - Google Analytics