a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 110|回复: 1

[考试辅导] Oracle技术:Oracle客户端显示乱码问题

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
看下面演示与剖析:   SQL> select * from nls_database_parameters;
; v) r3 e7 G1 y4 S) j/ M/ }* j5 f. t" H  PARAMETER                      VALUE, p& m. R0 m; f# [* E+ `
  ------------------------------ ------------------------------
4 Q# [# Y9 k& N! L( L: i. k$ M  NLS_LANGUAGE                   AMERICAN, L' w# t' D$ b/ R3 }+ j
  NLS_TERRITORY                  AMERICA
7 _" i- a: g  O  @0 k' I% d$ A  NLS_CURRENCY                   $$ G0 P8 K) z. G4 O/ j1 z- Z
  NLS_ISO_CURRENCY               AMERICA& [+ |0 Q3 [( g( p% [3 V* b/ p
  NLS_NUMERIC_CHARACTERS         .,
+ Q! d; u5 M( d$ M7 o+ u  NLS_CHARACTERSET               AL32UTF8, d: [3 j) B" k& r) |& W% m0 [) I
  NLS_CALENDAR                   GREGORIAN
4 v0 F8 I: g, l1 [5 P  NLS_DATE_FORMAT                DD-MON-RR
) N+ `* J: h0 I% \9 @" j  NLS_DATE_LANGUAGE              AMERICAN
3 B/ l) v( z4 p; x& j  NLS_SORT                       BINARY, Q/ k, g$ \. l! d8 O
  NLS_TIME_FORMAT                HH.MI.SSXFF AM
6 I2 {2 Z4 g4 t0 z' [: b  PARAMETER                      VALUE# w* h# I% G3 b0 O! |
  ------------------------------ ------------------------------ NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
# j' `8 ^( l5 ~9 `5 o  NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR; s% _5 |5 p2 z9 K9 X
  NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR* z/ n) B, r) Z6 }
  NLS_DUAL_CURRENCY              $
' T0 m1 C5 F8 l4 k* E& h  NLS_COMP                       BINARY- o* f. d0 W6 W$ {
  NLS_LENGTH_SEMANTICS           BYTE! U% \/ f0 v' d( {6 n0 C
  NLS_NCHAR_CONV_EXCP            FALSE" @" i/ C" X. k* K9 q
  NLS_NCHAR_CHARACTERSET         AL16UTF16$ C) Q  E8 O& o# Y
( |) x0 D9 B0 s3 l
  NLS_RDBMS_VERSION              9.2.0.4.0
回复

使用道具 举报

 楼主| 发表于 2012-8-4 14:06:20 | 显示全部楼层

Oracle技术:Oracle客户端显示乱码问题

</p>  20 rows selected.
0 \) c  c& m9 P& ?% X9 B! E5 N  windows客户机上:, K: X$ h* C4 M) y! ^/ S% G1 }
  H:UsersLuoTaoyang>chcp: ?& P! H' }8 b- ]) y
  勾今世码页: 936
; K5 p3 n: L% m6 A' b. D9 c  H:UsersLuoTaoyang>set NLS_LANG=American_America.ZHS16GBK
) N# w& i. ~: c7 x  SQL> DESC chartest;
# t& B) V, K  h- v  Name                                      Null?    Type----------------------------------------- -------- ----------------------------. u) ]: r+ n/ D3 A
  ID                                                 NUMBER(38)9 V( j2 X1 U  E
  NAME                                               VARCHAR2(20)
) ]- I3 E. k' \9 e  SQL> insert into chartest values(1,'123你好吗ABC');/ G: Q% j) e1 O& t. Z# o- i
  1 row created.
, {; u$ P  i( m- O5 r  SQL> SELECT * from chartest;$ ]& F" Y8 ?+ N$ n; i8 |* Y& P
  ID NAME( C! F6 H2 }/ p8 Q* t
  ---------- ----------------------------------------
3 @3 D( H" D- L8 D( U  1 123你好吗ABC
0 c* a' T, }- v& I' F- I! [% b  SQL> select id,dump(name,1016) from chartest;
* ]6 v9 B: p* S  A3 \+ X3 x3 E  ID
2 b4 _2 }: D1 U  ----------$ C0 @( G; j' y: o% B; I. m( f; {+ V
  DUMP(NAME,1016); E) N3 @& A; W
  --------------------------------------------------------------------------------
  U1 ^$ C/ H: X3 U! z0 t& t  1+ y3 R/ b) Z2 A
  Typ=1 Len=15 CharacterSet=AL32UTF8: 31,32,33,e4,bd,a0,e5,a5,bd,e5,90,97,41,42,430 M! @9 I# j" n; @9 a
  #‘123你好吗ABC’在ZHS16GBK字符集下16进制代码为:31 32 33 C4 E3 BA C3 C2 F0 41 42 43,之所以跟Oracle存储的分歧时因为客户端字符集(ZHS16GBK)与Oracle主字符集(AL32UTF8)分歧,Oracle在底层发生字符集转换的原因。
2 J9 ~8 l( O& d" F, E  H:UsersLuoTaoyang>set NLS_LANG=American_America.AL32UTF8
& g: t4 Z' p! f" C  SQL> select * from chartest;
* }- q( F2 C! `1 q" l  ID NAME
6 l& H* |4 S; ^) ^, s  ---------- --------------------
* p7 W. \2 e8 _6 o5 X" D  1 123浣犲ソ鍚桝BC5 N) H3 R3 @4 v7 M3 I
  #呈锨氚搽是因为此时Oracle客户端字符集与Oracle主字符集不异,Oracle不贰生字符集转换。但在windows下依然用字符集(ZHS16GBK)显示。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-5 18:10 , Processed in 0.201504 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表