PHP显示中文的问题请教
服务器,RH LINUX + apache + php4.3
本地字符编码设置为GB2312
安装了MSSQL Server 2k 的驱动程序freetds
用freetds的tsql命令对远程的MSSQL数据库进行交互式的查询,数据库中的中文字符可以正确显示,说明底层的freetds驱动没有问题
安装了ODBC, ODBC配置为通过freetds与远程的MSSQL数据库连接
运行下面的PHP代码:
<?
echo "测试远程数据库查询<br>";
if(($handle=odbc_connect("MyODBC","sa",""))){
$query="SELECT * FROM t_Item WHERE Fname LIKE 'B%'";
$resultset=odbc_exec($handle, "$query");
odbc_result_all($resultset, "border=1");
odbc_close($handle);
};
?>
查询与tsql一样的内容,可以得到正确的查询结果,但是数据库中的中文字符全部显示问号,不能正确显示,而程序里的字符串"测试远程数据库查询"又能正确显示,在本地的浏览器和Windows下的IE浏览器里,都是一样
查看apache /etc/httpd/conf/httpd.conf 里面的配置是:
AddDefaultCharset GB2312
也是正确的
不知道为什么在PHP里面不能正确显示数据库里的汉字呢?
请教各位该怎么解决?
问题点数:50、回复次数:9Top
1 楼xwsn(孤帆远影)回复于 2006-03-10 09:25:39 得分 10
看看ashchen的
http://community.csdn.net/Expert/topic/4456/4456072.xml?temp=.628277Top
2 楼ashchen(老陳)回复于 2006-03-10 11:56:16 得分 10
sqlserver里的编码应该是utf-8的,转成gb或者
网页编码用utf-8Top
3 楼hbcb(青蛙王子)回复于 2006-03-10 12:00:00 得分 0
SQLServer里面的应该是GB2312编码
因为我的Linux系统原来就是用UTF-8,不能正确显示SQLServer里面的中文,LINUX改为GB2312以后就可以显示了,但是就是在PHP里面还不能显示数据库里面的中文Top
4 楼ashchen(老陳)回复于 2006-03-10 14:38:56 得分 5
那就不清楚了,没用过sqlserverTop
5 楼iasky(iasky)回复于 2006-03-10 21:08:07 得分 5
sql中是utf-8的哦.网页也用utf-8吧..Top
6 楼SuperBJack(我想飞翔)回复于 2006-03-10 21:21:28 得分 5
统一用 utf-8 多国家语言都支持.Top
7 楼hbcb(青蛙王子)回复于 2006-03-10 22:35:32 得分 0
因为SQLSERVER数据库是原来已经存在的,否则就直接使用Linux下的数据库就省事多了,而且是由其他软件公司的软件来使用这个数据库的,因此不能把SQLServer也设置为UTF-8,在Linux下只是我们用户想自己做一些扩展的查询来满足不断变化的需要Top
8 楼ccxxcc(cc小超)回复于 2006-03-10 22:38:42 得分 10
iconv函数把utf-8转换为gb2312的
服务器需要装php的iconv模块Top
9 楼gu1dai(异域苍穹.百年飞行)回复于 2006-03-11 14:31:00 得分 5
1.察看你网页的编码是?utf8还是gb2312.
2.尝试将读出的结果组成字符串写入文件,用word打开这个文件,如果有乱码它会提示你选择字符集。
3.尝试用iconv库将编码转化。Top




