+ -
当前位置:首页 → 问答吧 → 碰到一个中文乱码问题,求解答。

碰到一个中文乱码问题,求解答。

时间:2010-08-17

来源:互联网

系统环境是两台IBM服务器,一台数据库,一台Web。
数据库安装oracle11.1.0.6.0
web为apache(Server version: Apache/2.0.52),perl(v5.8.5),DBI(DBI   1.609),DBD(DBD::Oracle   1.23)。

oracle字符集等信息为:
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                           
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              11.1.0.6.0   

数据库环境字符集为:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
Web环境字符集为:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

访问Web页面,UTF-8编码,正常显示。
访问Web页面(有数据查询),查询数据库的中文正常显示,而页面内中文全为乱码。

下载 (2.21 KB)
2010-08-17 12:35

作者: shiru   发布时间: 2010-08-17

补充: 将web环境:
字符设置为:AMERICAN_AMERICA.ZHS16GBK
测试结果:
web(纯网页)中文显示正常;
web(含查询)页面内中文正常,但是查询出的字符偶有乱码。如:电风扇2,显示为:
下载 (990 Bytes)
2010-08-17 14:13


在数据库这台服务器上查询数据(sql),查询的中文全为乱码。
很不解!!!

作者: shiru   发布时间: 2010-08-17

再补充:
我将页面编码全部改为gb2312.页面保存为ANSI编码。所有问题都没有了!!!
可是我需要UTF-8的编码格式啊。

作者: shiru   发布时间: 2010-08-17