Php MySQL数据库中的文本采用ISO-8859-1(拉丁语)编码,但应为UTF-8

Php MySQL数据库中的文本采用ISO-8859-1(拉丁语)编码,但应为UTF-8,php,mysql,html,encoding,utf-8,Php,Mysql,Html,Encoding,Utf 8,我有一个mysql表,其中充满了拉丁文编码的文本。我知道这一点,因为即使我将表定义为UTF-8编码,并且发送的头被设置为UTF-8,我仍然会收到黑色菱形中丑陋的问号。要使数据正确显示,唯一的方法是将标题改为使用ISO-8859-1编码 我已经尝试了在某处和整个网络上能找到的每一个建议,但到目前为止没有一个有效 我试图按照这位作者的建议去做,但即使我能够用文本阅读器正确地阅读文件,它也不能正确地显示在网站上 我完全不知所措,并愿意听取关于如何解决这个问题的建议 谢谢。多亏@deceze的帮助,我终

我有一个mysql表,其中充满了拉丁文编码的文本。我知道这一点,因为即使我将表定义为UTF-8编码,并且发送的头被设置为UTF-8,我仍然会收到黑色菱形中丑陋的问号。要使数据正确显示,唯一的方法是将标题改为使用ISO-8859-1编码

我已经尝试了在某处和整个网络上能找到的每一个建议,但到目前为止没有一个有效

我试图按照这位作者的建议去做,但即使我能够用文本阅读器正确地阅读文件,它也不能正确地显示在网站上

我完全不知所措,并愿意听取关于如何解决这个问题的建议


谢谢。

多亏@deceze的帮助,我终于找到了答案

对于任何有同样问题的人,以下是我所做的

我正在使用PDO连接到我的数据库,我不知道默认的连接编码是拉丁语(如果未指定的话)。因此,我必须指定我想要一个使用UTF-8编码的连接

使用此附加参数,我的连接现在看起来像:

$pdo = new PDO('mysql:dbname=encoding_test;host=localhost', 'user', 'pass',
            array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

多亏@deceze的帮助,我终于找到了答案

对于任何有同样问题的人,以下是我所做的

我正在使用PDO连接到我的数据库,我不知道默认的连接编码是拉丁语(如果未指定的话)。因此,我必须指定我想要一个使用UTF-8编码的连接

使用此附加参数,我的连接现在看起来像:

$pdo = new PDO('mysql:dbname=encoding_test;host=localhost', 'user', 'pass',
            array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
尝试以下操作:尝试以下操作: