php 设置nls lang,急,客户端与服务端nls_lang设置相同,但中文仍显示乱码

博客内容涉及Oracle数据库的NLS参数配置与客户端字符集设置对查询结果的影响。作者展示了当NLS_LANG设置为AMERICAN_AMERICA.US7ASCII和AMERICAN_AMERICA.ZHS16GBK时,查询中文数据出现乱码的情况。文章讨论了可能的解决方案和字符集匹配的重要性。
摘要由CSDN通过智能技术生成

原帖由 lfree 于 2008-1-17 10:59 发表 forum.php?mod=viewthread&tid=928605

如果客户端是windows

命令应该是

set nls_lang=AMERICAN_AMERICA. ZHS16GBK

斑竹请看我的测试:

1:服务端字符:

SQL> select * from v$nls_parameters;

PARAMETER                                                        VALUE

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

NLS_LANGUAGE                                                     AMERICAN

NLS_TERRITORY                                                    AMERICA

NLS_CURRENCY                                                     $

NLS_ISO_CURRENCY                                                 AMERICA

NLS_NUMERIC_CHARACTERS                                           .,

NLS_CALENDAR                                                     GREGORIAN

NLS_DATE_FORMAT                                                  DD-MON-RR

NLS_DATE_LANGUAGE                                                AMERICAN

NLS_CHARACTERSET                                                 ZHS16GBK

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_NCHAR_CHARACTERSET                                           AL16UTF16

NLS_COMP                                                         BINARY

NLS_LENGTH_SEMANTICS                                             BYTE

NLS_NCHAR_CONV_EXCP                                              FALSE

19 rows selected.

2:客户端查询(NLS_LANG=AMERICAN_AMERICA.US7ASCII,显示乱码)

SQL> select * from app.tablename@posson where rownum<2;

ACC_NBR

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

CUST_NAME

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

PROD_NAME                      DATEA

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

4502462

???????????IP??

2                              20080116

SQL> !

zs_db1$echo $NLS_LANG

AMERICAN_AMERICA.US7ASCII

3:客户端查询(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,显示乱码)

zs_db1$export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

zs_db1$sqlplus user/password

SQL*Plus: Release 9.2.0.4.0 - Production on Thu Jan 17 11:18:34 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

SQL> select * from app.tablename@posson where rownum<2;

ACC_NBR

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

CUST_NAME

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

PROD_NAME                      DATEA

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

4502462

???????????IP??

2                              20080116

SQL> !

zs_db1$echo $NLS_LANG

AMERICAN_AMERICA.ZHS16GBK

zs_db1$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值