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

简介:

 看下面演示与分析:

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)显示。









本文转自 d185740815 51CTO博客,原文链接:http://blog.51cto.com/luotaoyang/301294,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
SQL Oracle 关系型数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
141 0
|
8月前
|
SQL 人工智能 Oracle
NineData支持全版本的企业级Oracle客户端,现已发布!
Oracle数据库是一款全球领先的关系型数据库管理系统,NineData发布对Oracle数据库的SQL开发支持。开发者可以使用NineData便捷查询云端、本地、多个版本的Oracle数据库。NineData在近期的迭代中提供了对Oracle数据库的支持。具有可视化工具、AI智能优化、SQL智能提示、企业协同等多种强大能力,并且无需安装,登录即可使用,同时在安全性上也为您提供了相当可靠的保障。
358 0
NineData支持全版本的企业级Oracle客户端,现已发布!
|
Oracle 关系型数据库 Java
解决读取Oracle数据库US7ASCII编码乱码问题
今天和第三方对接数据时,对方提供了一个视图US7ASCII编码,给代码调试带来了很大的不便。程序输出的mybatis获取的对象及new String(s.getBytes("ISO8859-1"), "GB2312")加解密后都是乱码。
1425 1
|
5月前
|
SQL Oracle 关系型数据库
Oracle21C + PLSQL Developer 15 + Oracle客户端21安装配置完整图文版
Oracle21C + PLSQL Developer 15 + Oracle客户端21安装配置完整图文版
133 0
|
6月前
|
Oracle 关系型数据库 Java
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
|
8月前
|
SQL Oracle 关系型数据库
WSL 配置 Oracle 19c 客户端
作者介绍:金桔
139 0
|
SQL Oracle 网络协议
Oracle 11g即时客户端在windows下的配置
Oracle 11g即时客户端在windows下的配置
152 0
|
存储 SQL Oracle
Oracle数据库和客户端的安装
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
202 0
Oracle数据库和客户端的安装
QGS
|
Oracle 关系型数据库 Linux
Centos7安装oracle客户端并验证oracle客户端
记Centos7安装oracle客户端并验证oracle客户端
QGS
431 0
Centos7安装oracle客户端并验证oracle客户端
|
存储 Oracle 关系型数据库
oracle blob和 varchar2互相转换,mybatis 读取blob乱码等相关问题总结
oracle blob和 varchar2互相转换,mybatis 读取blob乱码等相关问题总结
461 0
oracle blob和 varchar2互相转换,mybatis 读取blob乱码等相关问题总结

推荐镜像

更多