Php 仅生产缺陷:em破折号显示不正确

Php 仅生产缺陷:em破折号显示不正确,php,mysql,ascii,production-environment,Php,Mysql,Ascii,Production Environment,我遇到了一个em破折号问题,我还没有解决。对于我们的站点,我们将文本内容存储在MySQL数据库中的“content”列中,该列偶尔会包含特殊字符,除em破折号外,所有字符都正确显示。在网站上打印时,输入文本中的任何em破折号都会变成问号菱形替换字符 该缺陷只出现在我们的生产站点(在我们的开发站点和暂存站点上,Emdash渲染正确),这让我相信这可能是它们各自数据库中的字符集的问题(我们的开发/暂存数据库托管在一台服务器上,而生产在另一台服务器上)。但是,在所有数据库中,包含相关文本内容的列都设置

我遇到了一个em破折号问题,我还没有解决。对于我们的站点,我们将文本内容存储在MySQL数据库中的“content”列中,该列偶尔会包含特殊字符,除em破折号外,所有字符都正确显示。在网站上打印时,输入文本中的任何em破折号都会变成问号菱形替换字符

该缺陷只出现在我们的生产站点(在我们的开发站点和暂存站点上,Emdash渲染正确),这让我相信这可能是它们各自数据库中的字符集的问题(我们的开发/暂存数据库托管在一台服务器上,而生产在另一台服务器上)。但是,在所有数据库中,包含相关文本内容的列都设置为utf-8。用htmlspecialchars()包装输出无效


值得注意的是,当我使用print_r()打印我正在保存获取的DB结果(用于调试)的变量时,em破折号将在下面打印出来时正确呈现。

感谢所有响应者,它通过设置名称“utf8”解决方案得到修复。

感谢所有响应者,它是由

中的设置名称“utf8”解决方案修复的,请检查网页编码(来自meta标记)、php脚本文件编码和mysql驱动程序编码是否匹配;而不是&mdash?我们对破折号也有同样的问题,结果是用户是从word复制/粘贴破折号(稍微长一点),而mysql编码在生产中不接受它。我们通过创建一个带有一些例外的转义函数来解决这个问题。Hi@ClaudioPinto可能会重复,我们可能会做类似的事情,因为我们的问题也可能是由用户从Word复制/粘贴造成的。你能提供更多关于你所做的功能的细节吗?它是否搜索并替换了单词dash?感谢您和大家的快速响应。请检查网页编码(来自meta标记)、php脚本文件编码和mysql驱动程序编码是否匹配。您是否尝试过—;而不是&mdash?我们对破折号也有同样的问题,结果是用户是从word复制/粘贴破折号(稍微长一点),而mysql编码在生产中不接受它。我们通过创建一个带有一些例外的转义函数来解决这个问题。Hi@ClaudioPinto可能会重复,我们可能会做类似的事情,因为我们的问题也可能是由用户从Word复制/粘贴造成的。你能提供更多关于你所做的功能的细节吗?它是否搜索并替换了单词dash?感谢您和所有人的快速响应。