您在這裡

drupal调用外部数据库出现的问题

xyfxh's 的頭像
xyfxh 在 2007-09-28 (週五) 22:34 發表

drupal调用外部数据库出现的问题

我现在使用的是drupal数据库,我想调用别的论坛的数据到drupal首页显示,别入我调用我discuz论坛数据库的内容,调用发帖前十名的用户显示在drupal首页,其实也就是一个简单的php调用,但是调用显示后在drupal首页显示的是乱码,但是如果把这段代码写在一个单独的页面调用到正常,我discuz的数据库也是utf8的,但是不是drupal数据库的utf8_general_ci编码,drupal的数据库编码是utf8_general_ci的,而我调用的数据库编码是utf8_unicode_ci的,drupal的web显示页面是utf8的啊,我如果吧这段代码写道单独的文件里,调用的页面是gb2312的,我就很奇怪这个问题,忘高手解释,谢谢!

这就是调用的php代码!

<?php

mysql_connect('localhost','root','123456');
mysql_select_db('discuz');
$sql = "select * from names limit 0,10";
$result = mysql_query($sql);

while($data = mysql_fetch_array($result))
{
$name = $data['name'];
echo $name."";
}

?>

<?php
mysql_connect('localhost','root','123456');
mysql_select_db('discuz');

mysql_query("SET NAMES utf8");

$sql = "select * from names limit 0,10";
$result = mysql_query($sql);

while($data = mysql_fetch_array($result))
{
$name = $data['name'];
echo $name."";
}
?>

<?php

$sql = "select * from drupal limit 0,10";
$result = mysql_query($sql);

while($data = mysql_fetch_array($result))
{
$name = $data['name'];

echo mb_detect_encoding($name);
echo $name."";
$str = mb_convert_encoding($name, "GBK","UTF-8");
echo $str."";
echo mb_detect_encoding($str);

}

这个段代码我有加了查看代码输出编码的语句
echo mb_detect_encoding($name);这一段显示编码输出的是utf8,但是是乱码
我又用$str = mb_convert_encoding($name, "GBK","UTF-8");
给转换成GBK同样还是乱码!

但是用discuz论坛的js调用生成的代码

我如果在后面加上charset="gbk"的话,则可以在drupal首页输出,并显示正常!

有哪位高手能告诉我问题所在,谢谢!@

»