不同MySQL数据库中多个表之间的阿拉伯数据传输返回????????作为新的价值观

时间:2014-04-09 16:17:40

标签: php mysql sql

我使用PHP在letters中的database1.table1字段中new_letters字段向database2.table2字段插入了一些数据,但所有值都更改为{{1}等问号1 {}在????? ?????? ????? ??????? ?? ??? ???? ????? ?????字段中。 new_letters的结构是(Type:longtext,Collat​​ion:utf8_general_ci),letters的结构是(Type:mediumtext,Collat​​ion:utf8_unicode_ci)。另外,我需要提一下,即使将两个排序规则更改为utf8_unicode_ci或utf8_general_ci也无法解决问题。你能告诉我这是什么问题吗?

2 个答案:

答案 0 :(得分:4)

您需要确保整理和字符集一致。例如,您有两种不同的排序规则(utf8_general_ciutf8_unicode_ci),因此您应将它们转换为相同的排序规则。我相信UTF-8支持阿拉伯字母。

所以,CHARACTER SET utf8和COLLATE utf8_general_ci

答案 1 :(得分:1)

您需要确保从连接,数据库到表的整个链都是UTF8清理。我对a similar question here有详细的解答。

但在您的情况下,请检查实际的MySQL服务器my.cnf文件。以下将整个链设置为UTF-8:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8