2

我有一张带有 latin1 字符集的旧桌子。使用 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);

在任何查询之前

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

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

它们存储在数据库中,如:غلاÙ...ÛŒ</p>

有什么办法可以找回那些旧数据吗?

4

1 回答 1

0

我以前做的是在命令行上

mysqldump --default-character-set=latin1 ... > file.sql

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

mysql --default-character-set=utf8 < file.sql

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

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

于 2011-12-13T15:33:04.970 回答