MySQL 表转换为 utf-8

标签 mysql utf-8 persian

我有一张带有 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);

在任何查询之前

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

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

它们存储在数据库中,如:غلامی

有没有办法找回那些旧数据?

最佳答案

我以前做的就是在命令行上走

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

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

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

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

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

关于MySQL 表转换为 utf-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8491511/

相关文章:

java - 删除用户选择的记录?

mysql - 符号链接(symbolic link)的 MySQL 列

Delphi例程以任意语言以任意编码显示任意字节

mysql - 无法通过utf8编码在mysql数据库中插入中文(Warning 1336 incorrect string value)

javascript - 在 javascript 中调用自定义函数而不是 getfullyear()

python-3.x - 如何在python中使用reportlab、rtl和bidi创建包含波斯语(波斯语)文本的PDF

php - jQuery-Ajax 不适用于生产服务器

encoding - 错误的 MySQL 导入,现在我们用垃圾代替 utf-8 字符显示

three.js - Three.js 支持波斯语/阿拉伯语文本

mysql - 如何将列表传递给mysql过程?