我遇到了一个我无法解决的破折号问题。对于我们的站点,我们将文本内容存储在 MySQL 数据库的“内容”列中,偶尔会包含特殊字符,除了破折号外,所有这些字符都能正确显示。当在网站上打印出来时,输入文本中的任何长破折号都会变成问号菱形替换字符。
该错误仅出现在我们的生产站点上(在我们的开发站点和暂存站点上,破折号正确呈现),这让我相信这可能是它们各自数据库上的字符集问题(我们的开发/暂存数据库是托管在一台服务器上,生产在另一台服务器上)。但是,包含相关文本内容的列在所有数据库上都设置为 utf-8。将输出包装在 htmlspecialchars() 中不起作用。
值得注意的是,当我使用 print_r() 打印我将获取的数据库结果保存到其中的变量(用于调试)时,em 破折号将在下面打印时正确呈现。
最佳答案
感谢所有回复的人,它已被 UTF-8 all the way through 中的 SET NAMES 'utf8' 解决方案修复
关于php - 仅限生产的错误 : em dashes not appearing correctly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31657136/