【问题标题】:Pound Signs appearing as Question Marks PHP磅符号显示为问号 PHP
【发布时间】:2016-09-10 19:02:20
【问题描述】:

我的 PHP 脚本从 MySQL 数据库中提取数据时,英镑符号在菱形中显示为问号。

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

我在 php.ini 中检查了我有 default_charset = "utf-8",我还在 /etc/apache2/apache2.conf 和 /etc/apache2/conf-enabled/charset 添加了 AddDefaultCharset UTF-8 .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

提前谢谢你

【问题讨论】:

  • 查看数据库并查看它用于表的字符集,您可能需要将其更改为该字符集。
  • 您好。刚刚查看了表格并将其设置为 utf8_bin
  • 表示UTF8二进制
  • 应该可以吗?
  • 理论上,如果您不介意区分大小写的搜索。通常看到带有问号的黑色菱形是字符集问题。

标签: php mysql utf-8


【解决方案1】:

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

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

它说它是拉丁语,所以我通过将它添加到我的 PHP 来修复它

mysqli_set_charset($conn,"utf8");

$conn 是你的连接字符串

彼得

【讨论】:

    【解决方案2】:

    £ 是否显示为 单身 ?如果是这样,请参阅 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)。

    仅当浏览器设置为&lt;meta charset=UTF-8&gt; 时才会出现黑色菱形。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 2023-03-21
      • 2015-10-27
      相关资源
      最近更新 更多