php - 仅限生产的错误 : em dashes not appearing correctly

标签 php mysql ascii production-environment

我遇到了一个我无法解决的破折号问题。对于我们的站点,我们将文本内容存储在 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/

相关文章:

php - 无法连接到数据库

php - 在线接受支付时,在哪里可以找到不同卡片所需的参数

php - 使用 PHP 多维数组将 MySQL 转换为 JSON

mysql - 高效遍历关系数据库中以表形式存储的图

c - 动态分配 'sizeof(char)' 冗余时是否使用 'char'?

c - 比较 ASCII 值的最佳方法

php - 显示数据库中列的逗号分隔下拉值

mysql - 在使用我的 where 函数进行数学运算时,我的 mysql 查询出现语法错误

php - 在 Laravel 中对每日统计数据进行分页

c++ - 编写带有标题的表的 ofstream/fstream 对象的高效且干净的方法