MySQL表转换为utf-8

MySQL表转换为utf-8,mysql,utf-8,persian,Mysql,Utf 8,Persian,我有一张有拉丁字母的旧桌子。使用phpmyadmin,我将其转换为utf-8 之后,当我用php读取数据时,我的数据显示为?????问号 我的页面字符集是utf-8。我的php没有问题,我也尝试过: @mysqli_query("SET NAMES 'utf8'", $db); @mysqli_query("SET CHARACTER SET 'utf8'", $db); @mysqli_query("SET character_set_client = utf8 ",$db); @mysqli

我有一张有拉丁字母的旧桌子。使用phpmyadmin,我将其转换为utf-8 之后,当我用php读取数据时,我的数据显示为?????问号

我的页面字符集是utf-8。我的php没有问题,我也尝试过:

@mysqli_query("SET NAMES 'utf8'", $db);
@mysqli_query("SET CHARACTER SET 'utf8'", $db);
@mysqli_query("SET character_set_client = utf8 ",$db);
@mysqli_query("SET character_set_results = utf8 ",$db) ;
@mysqli_query("SET character_set_connection = utf8 ",$db);
在任何查询之前

似乎不起作用,仍然显示为

新记录没有问题,但旧记录不可读

它们存储在数据库中,如:ØÙا……ÛŒ


有什么方法可以检索这些旧数据吗?

我以前的工作是在命令行上执行

mysqldump——默认字符集=latin1…>file.sql

然后将file.sql转换为UTF(使用ICONV或任何其他选项),然后更改表的字符集并使用

mysql——默认字符集=utf8

您可以使用phpMyAdmin中的export选项并进行转换,就像上面的示例一样,从phpMyAdmin更改表上的字符集,然后再次导入它


我通常在执行此操作之前进行备份,这会导致错误发生,但这非常简单,我过去所做的就是在命令行上执行

mysqldump——默认字符集=latin1…>file.sql

然后将file.sql转换为UTF(使用ICONV或任何其他选项),然后更改表的字符集并使用

mysql——默认字符集=utf8

您可以使用phpMyAdmin中的export选项并进行转换,就像上面的示例一样,从phpMyAdmin更改表上的字符集,然后再次导入它

我通常在执行此操作之前进行备份,因为会发生错误,但这非常简单