IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置: 首页数据库Oracle → 关于Oracle客户端显示乱码问题

关于Oracle客户端显示乱码问题

时间:2015-06-28 00:00:00 来源:IT猫扑网 作者:网管联盟 我要评论(1)

  看下面演示与分析:

  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   AL32UTF8

  NLS_CALENDAR GREGORIAN

  NLS_DATE_FORMAT    DD-MON-RR

  NLS_DATE_LANGUAGE  AMERICAN

  NLS_SORT     BINARY

  NLS_TIME_FORMAT    HH.MI.SSXFF AM

  PARAMETER    VALUE

  ------------------------------ ------------------------------

  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  9.2.0.4.0

  20 rows selected.

  windows客户机上:

  H:\Users\LuoTaoyang>chcp

  活动代码页: 936

  H:\Users\LuoTaoyang>set NLS_LANG=American_America.ZHS16GBK

  SQL> DESC chartest;

  Name  Null?    Type

  ----------------------------------------- -------- ----------------------------

  ID NUMBER(38)

  NAME     VARCHAR2(20)

  SQL> insert into chartest values(1,'123你好吗ABC');

  1 row created.

  SQL> SELECT * from chartest;

  ID NAME

  ---------- ----------------------------------------

  1 123你好吗ABC

  SQL> select id,dump(name,1016) from chartest;

  ID

  ----------

  DUMP(NAME,1016)

  --------------------------------------------------------------------------------

  1

  Typ=1 Len=15 CharacterSet=AL32UTF8: 31,32,33,e4,bd,a0,e5,a5,bd,e5,90,97,41,42,43

  #‘123你好吗ABC’在ZHS16GBK字符集下16进制代码为:31 32 33 C4 E3 BA C3 C2 F0 41 42 43,之所以跟Oracle存储的不同时因为客户端字符集(ZHS16GBK)与Oracle主字符集(AL32UTF8)不同,Oracle在底层发生字符集转换的原因。

  H:\Users\LuoTaoyang>set NLS_LANG=American_America.AL32UTF8

  SQL> select * from chartest;

  ID NAME

  ---------- --------------------

  1 123浣犲ソ鍚桝BC

  #出现乱码是因为此时Oracle客户端字符集与Oracle主字符集相同,Oracle不发生字符集转换。但在windows下依然用字符集(ZHS16GBK)显示。

关键词标签:Oracle客户端显示乱码

相关阅读

文章评论
发表评论

热门文章 Oracle中使用alter table来增加,删除,修改列的语法 Oracle中使用alter table来增加,删除,修改列的语法 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 误删Oracle数据库实例的控制文件 误删Oracle数据库实例的控制文件 为UNIX服务器设置Oracle全文检索 为UNIX服务器设置Oracle全文检索

相关下载

    人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法