0

我正在使用 MySQL 5.7.14 运行 WAMP 3.0.6。一切都使用 UFT-8 字符集。

我在“1£1”字段中有数据(即 1(磅)1)。

我检查了服务器(我自己的),该字段的十六进制值为:31 C2 A3 31。这是正确的。

我在本地运行一个查询,它返回正确的数据,以 C2 A3 作为井号。

我在 PHP 中运行查询,它只返回 A3,十六进制为 31 A3 31。这导致井号是黑色问号。

如果我运行 echo pack ("C*",194,163); 在 PHP 中,我得到了正确的井号。

所以澄清一下:MySQL 持有正确的数据。服务器上的查询返回正确的数据。通过网页的 PHP 将从十六进制回显正确的井号。php.ini 设置为 UFT-8。MySQL 数据库设置为 UFT-8。为 UFT-8 设置了 HTML。PHP 设置为 UFT-8。PHP 查询没有收到正确的数据。

有人有什么想法吗?我全力以赴。

4

1 回答 1

0

我找到了答案:

我需要把 $mysqli->set_charset("utf8"); 在代码的开头,大概是告诉连接也是 UTF-8 字符集。

$mysqli 是保存“new mysqli()”数据的字符串。

于 2018-04-08T05:23:21.770 回答