我有一个 mysql 表,里面全是拉丁编码的文本。我知道这一点,因为即使我将表定义为 UTF-8 编码,并且发送的 header 设置为 UTF-8,我还是收到了黑色菱形中丑陋的问号。使我的数据正确显示的唯一方法是更改我的 header 以改用 ISO-8859-1 编码。
我已经尝试了所有我能在 SO 上和整个网络上找到的建议,但到目前为止都没有奏效。
我尝试按照作者的建议去做:https://stackoverflow.com/a/5232411/102067 , 但即使我能够使用文本阅读器正确读取文件,它也无法在网站上正确显示。
我完全不知所措,愿意接受有关如何解决此问题的建议。
谢谢。
最佳答案
感谢@deceze 的 suggestion,我终于找到了答案.
对于遇到同样问题的任何人,这就是我所做的...
我正在使用 PDO 连接到我的数据库,我不知道如果未指定默认连接编码是拉丁语。因此,我必须指定我想要使用 UTF-8 编码的连接。
有了这个附加参数,我的连接现在看起来像:
$pdo = new PDO('mysql:dbname=encoding_test;host=localhost', 'user', 'pass',
array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
关于php - MySQL 数据库中的文本采用 ISO-8859-1(拉丁文)编码,但应为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088666/