和php配置无关。
APACHE中有一个ADDDEFAULTCHARSET,改成GB2312试一试。

解决方案 »

  1.   

    谢谢关注!
    不过这个我早就是试过了,我还是认为跟php或是oracle有关。
      

  2.   

    oracle里的数据是如何写入的?
    是否是写入的环境并非是GB2312编码?
      

  3.   

    转摘:
    错误原因: 
    一般,是因为字符集设置不对照成的。 
    解决方法: 
    1、检查服务器上Oracle数据库的字符集SQL> conn sys/change_on_install
    连接成功.SQL> desc props$
     列名                          可空值否   类型
     ------------------------------- -------- ----
     NAME                            NOT NULL VARCHAR2(30)
     VALUE$                                   VARCHAR2(2000)
     COMMENT$                                 VARCHAR2(2000)SQL> col value$ format a40
    SQL> select name,value$ from props$;NAME                           VALUE$
    ------------------------------ -------------------------
    DICT.BASE                      2
    NLS_LANGUAGE                   AMERICAN
    NLS_TERRITORY                  AMERICA
    NLS_CURRENCY                   $
    NLS_ISO_CURRENCY               AMERICA
    NLS_NUMERIC_CHARACTERS         .,
    NLS_DATE_FORMAT                DD-MON-YY
    NLS_DATE_LANGUAGE              AMERICAN
    NLS_CHARACTERSET               ZHS16GBK
    NLS_SORT                       BINARY
    NLS_CALENDAR                   GREGORIAN
    NLS_RDBMS_VERSION              7.3.4.0.0
    GLOBAL_DB_NAME                 ORACLE.WORLD
    EXPORT_VIEWS_VERSION           3查询到14记录.NLS_CHARACTERSET这个参数应该是ZHS16GBK,如不是,改为它。SQL*Plus中修改方法:
    SQL> update props$ set value$='新字符集' where name='NLS_CHARACTERSET';操作系统中修改方法:
    connect internal
    alter database ORCL character set ZHS16GBK;
    alter database ORCL national character set ZHS16GBK;
    2、检查操作系统级Oracle汉字显示的字符集运行regedit,定位到:
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE找到以下字符串
    NLS_LANG检查是否以下内容,如不是,改之
    SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      

  4.   

    把ORACLE中的SYS.PROD$表中的NLS_LANG改为us7ascii.就可以正常显示中文了.