日期:2014-05-17  浏览次数:20562 次

PHP访问Oracle乱码!
Oracle 11 环境:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK;

PHP 5 default_charset "gb2312"

连接字符:$conn = oci_connect('scott', 'tiger', 'demo', 'zhs16gbk');

//注:后面的‘zhs16gbk‘加不加都不行,或改成'zhs16cdb231280','utf-8'都不行。

SQL*Plus:没问题
PHP:本身没问题
从PHP中INsert into……没问题

网页是IE7(IE6也试过),编码是简体中文GB2312。

可查询出的结果,英语显示正常,汉字都是乱码,折腾了几天了,还 是搞不定,那位有经验帮一下,先谢谢!

环境:Vista+Oracle 11+Php 5+ Apache 2.2.8
在XP下也试过不行。


------解决方案--------------------
还是你自已查一下oracle手册关于字符集的设置吧!
其次就是数据库中的字符集要和页面输出端的字符集一致!
------解决方案--------------------
查看———》编码———》自动选择
一般都是utf-8
------解决方案--------------------
在头上加上
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
就可以了
我想是因为你的文件不是utf-8的
------解决方案--------------------
再加个环境变量
NLS_NCHAR=ZHS16GBK
------解决方案--------------------
加个环境变量
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
重新启动机器
------解决方案--------------------
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
------解决方案--------------------
还有一个地方是
数据库表的定义是不是utf-8 ?
你把代码贴出来看下好了,乱猜没有用的
那样比较明朗些.