我有一个充满拉丁编码文本的mysql表。我知道这是因为即使我将表定义为UTF-8编码,并且发送的标题设置为UTF-8,我在黑色菱形中收到丑陋的问号。我可以正确显示数据的唯一方法是将标题更改为使用ISO-8859-1编码。
我已经尝试过我可以在SO和整个网络上找到的所有建议,但到目前为止都没有。
我试图按照作者的建议做到:https://stackoverflow.com/a/5232411/102067,但即使我能够使用文本阅读器正确读取文件,它也无法在网站上正确显示。
我完全失去了对如何解决这个问题的建议。
谢谢。
答案 0 :(得分:1)
我终于找到了答案,感谢@ 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'));