php+mysql+查出来乱码,求教php+mysql乱码的问题

因为服务器提供商的原因只能通过phpMyadmin管理数据库。使用show variables语句查询得到的当前数据库的信息如下:

character_set_clientlatin1

character_set_connectionutf8

character_set_databaseutf8

character_set_resultslatin1

character_set_serverlatin1

character_set_systemutf8

collation_connectionutf8_unicode_ci

collation_databaseutf8_unicode_ci

collation_serverlatin1_swedish_ci

我写了一个测试文件mytest.php代码如下(文件编码为UTF-8):

print "Hello";

$connection = mysql_connect('host','dbname','dbpass');

mysql_select_db('obbdb', $connection);

mysql_query("SET NAMES 'utf8'", $connection);

mysql_query("SET CHARACTER SET utf8", $connection);

mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $connection);

mysql_query("SET SQL_MODE = ''", $connection);

$result = mysql_query ("SELECT * FROM navigator", $connection);

while ($row = mysql_fetch_array($result, 10))

{

foreach ($row as $attribute) {

print "{$attribute}";

print "\n";

}

}

?>

显示的是乱码。

如果修改代码如下,并将文件的编码改为ANSI。则能正常显示

print "Hello";

$connection = mysql_connect('host','dbname','dbpass');

mysql_select_db('obbdb', $connection);

//mysql_query("SET NAMES 'utf8'", $connection);

//mysql_query("SET CHARACTER SET utf8", $connection);

//mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $connection);

mysql_query("SET SQL_MODE = ''", $connection);

$result = mysql_query ("SELECT * FROM navigator", $connection);

while ($row = mysql_fetch_array($result, 10))

{

foreach ($row as $attribute) {

print "{$attribute}";

print "\n";

}

}

?>

请问这是什么原因导致的乱码?如果要解决这个问题要怎么操作?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值