sql*plus显示乱码问题

转载 2016年08月30日 16:13:04

1、现象
最近使用oracle新搭环境发现通过sqlplus登陆时,显示乱码,如下图所示,严重影响sqlplus的使用:


2、解决方案

通过查阅资料发现sqlplus乱码与操作系统用户中的NLS_LANG这个环境变量有关系,如果这个与数据库字符集不一致的话就会产生乱码。坚持NLS_LANG这个环境变量发现根本就没有设置这个变量,则应该是读取操作系统字符集来作为默认字符集。
[oracle@localhost ~]$ echo $NLS_LANG

[oracle@localhost ~]$ 

如何查看数据库字符集,通过nls_database_parameters查询,可以得到NLS_CHARACTERSET的值为UTF8即为数据库字符集
SQL>  col parameter for a30
SQL> col value for a25
SQL>  select * from nls_database_parameters;

PARAMETER                      VALUE
------------------------------ -------------------------
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               UTF8
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM
                               TZR

NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_RDBMS_VERSION              11.2.0.1.0

查询NLS_LANG的组成规则为NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET,即操作系统环境变量应该要设置为AMERICAN_AMERICA.UTF8。如下图所示,乱码解决了:

顺利解决了乱码问题,修改.profile(unix 系统)或.bash_profile,增加
 export NLS_LANG="AMERICAN_AMERICA.UTF8"
就行了。

sqlplus 中文乱码 字符集设置

要解决Oracle的客户端乱码问题关键是要把服务器端使用的字符集跟客户端使用的字符集统一起来。Oracle客户端(Sqlplus)通过NLS_LANG环境变量来确定客户端使用的字符集。NLS_LANG...

sqlplus 汉字乱码问题的解决

从数据库中导一个数据的时候出现了一个很奇怪的问题,中文乱码。 首先可以确认的一点,数据在数据库中是以中文存在的,还有就是用Toad进行连接查询的时候也是中文。 但是在服务器端直接用sqlplus 连接...

Linux下sqlplus显示乱码

1、现象        在公司项目中,由于字符集全部采用的utf-8编码,SecurCRT采用utf-8字符集,导致脚本文件、代码中的汉字全部显示乱码。 将上述文件的编码格式全部转换为 UTF-...

Sqlplus连接Oracle出现中文乱码问题以及字符集的选择

字符集一共有三种:a.操作系统zifu

SQLPlus中文乱码问题解决方法——Windows10

有一段时间没敲过SQL了,今天复习,想打开SQLplus敲敲,结果不知道为什么就乱码了,很是无语,于是上网查找了下解决办法,可是都没用。 网上提供最主要也是最有用的方法就是设置环境变量NLS_L...

sqlplus中文乱码的解决!

一直用pl/sql连的数据库,今天突然连不上了,使用sqlplus连了一下发现中文竟然是乱码的,于是速度打开注册表, win+R快捷键>>--regedit>>HKEY_LOCL_MACHINE>>...

oracle sqlplus 与dos 中文乱码

平台:oracle9+window2003/xp 中文版本1.SQL> select * from v$nls_parameters;PARAMETER                        ...

oracle客户端sqlplus界面有乱码

[oracle@dd ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on ??? 2? 20 15:15:3...

windows下,命令行,sqlplus乱码问题。

系统 Windows 7 Enterprise 64-bit English 本地装Oracle 10g, PLSQL developer CMD -> sqlplus 出现乱码。 解决:sel...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sql*plus显示乱码问题
举报原因:
原因补充:

(最多只允许输入30个字)