Php 为什么在回显变量时替换字符不断出现?

Php 为什么在回显变量时替换字符不断出现?,php,html,mysql,Php,Html,Mysql,我正在创建一个测试应用程序,并将接受测试的人的姓名以及答案放在一张表上。问题在于输入以下字符时 áéíóúñ 我尝试过一些方法(比如iconv函数),但仍然不起作用 //A sample of the code require('../connect_db.php'); setlocale(LC_ALL,"es_ES"); mysql_query("SET NAMES 'utf8'"); $sql = "SELECT * FROM database.test"; $r

我正在创建一个测试应用程序,并将接受测试的人的姓名以及答案放在一张表上。问题在于输入以下字符时

áéíóúñ

我尝试过一些方法(比如iconv函数),但仍然不起作用

//A sample of the code

require('../connect_db.php');
setlocale(LC_ALL,"es_ES");
mysql_query("SET NAMES 'utf8'");

$sql  =  "SELECT *
          FROM database.test";
$result     = mysql_query($sql) or die (mysql_error());
$row        = mysql_fetch_array($result);
$name      = utf8decode($row[1]);

echo mb_detect_encoding($name); //Just to test
echo $name;
结果是:

UTF-8G�梅兹



编辑:问题不在数据库上。我已经用这些字符手动输入了姓名,没有问题,所以必须是代码。

已解决

$name
赋值时,无需运行第一个
utf8decode()

相反,我只是在
echo

处调用函数,停止使用不推荐的mysql\u*API。使用mysqli_*或可能的副本