英镑标志出现为问号PHP

时间:2016-09-10 19:02:21

标签: php mysql utf-8

我的PHP脚本中的一个菱形内的Pound Signs出现问号,从MySQL数据库中提取数据。

我查看了其他Stack Overflow答案,我认为已经检查了所有内容。

我已经在php.ini中检查过我有default_charset =“utf-8”,我还将AddDefaultCharset UTF-8添加到/etc/apache2/apache2.conf并添加到/ etc / apache2 / conf-enabled / charset的.conf

我还将其添加到网页顶部:

<!DOCTYPE html>
<html lang="en">
<HEAD>
<meta charset="UTF-8">
<title>ZXDB</title>
</HEAD>
<BODY>

最后我运行sudo /etc/init.d/apache2 restart重启服务器。

我正在使用Ubuntu 16.04与Apache和PHP7。

我错过了什么?

该页面可在此处获取:

http://spectrumcomputing.co.uk/originalprices.php

提前谢谢

2 个答案:

答案 0 :(得分:1)

感谢大家的回答。即使数据库,表和字段都设置为UTF-8,当我用这个检查字符集时:

http://php.net/manual/en/mysqli.set-charset.php

它说它是拉丁语,所以我修改了它,将它添加到我的PHP

mysqli_set_charset($康恩,&#34; UTF8&#34);

其中$ conn是您的连接字符串

彼得

答案 1 :(得分:0)

£是否显示为 ?如果是这样,请参阅https://stackoverflow.com/a/38363567/1766831中的“黑钻石”。那说:

案例1(原始字节不是UTF-8):

  • 要存储的字节不编码为utf8。解决这个问题。
  • INSERT和SELECT的连接(或SET NAMES)不是utf8 / utf8mb4。解决这个问题。
  • 另外,检查数据库中的列是否为CHARACTER SET utf8(或utf8mb4)。

案例2(原始字节为UTF-8):

  • SELECT的连接(或SET NAMES)不是utf8 / utf8mb4。解决这个问题。
  • 另外,检查数据库中的列是否为CHARACTER SET utf8(或utf8mb4)。

仅当浏览器设置为<meta charset=UTF-8>时才会出现黑钻石。