0

我有一个设置,它使用 PHP 从 MySQL 加载数据并以 HTML 格式显示。到目前为止它有效。所有字符都以应有的方式显示。但是当我单击一个按钮以使用 $.ajax 来刷新站点的某个部分时,它调用 PHP 来刷新 MySQL 数据,一些字符显示为?标记,这些字符是 MySQL 数据。

<!doctype html>
<html>
    <head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript">
        $(function() {
            $("div#click input").live("click", function() {
                $("div#main").load("main.php");
            });
        });
    </script>
    </head>

    <body>
        <div id="main">
        é¨ûåa
        </div>

        <div id="click">
        <input type="button" value="click" onclick="return false;" />
        </div>
    </body>
</html>

主文件

<?php
$a = mysql_connect('localhost', 'root', '');
mysql_select_db('link', $a);

?>
<div id="main">
ééîüåaa

</div>

<?php
$r = mysql_query("SELECT * from promo;");

while ($row = mysql_fetch_object($r)) {
        $name       = $row->name;
        echo $name;
}
mysql_close($a);
?>

MySQL 表:

CREATE TABLE `promo` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL DEFAULT '',
  `link` tinytext NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
4

1 回答 1

1

在进行 mysql_query 之前尝试使用此调用

mysql_set_charset("utf8")
于 2012-12-08T02:03:59.670 回答