【发布时间】:2016-08-19 06:52:55
【问题描述】:
我最近将我的网站升级到 PHP 5.7 并安装了新的 MySQL 数据库。之前的数据是导入的。
现在我在输出的文本中有很多菱形问号。我已经阅读了,问题似乎是我的数据库的排序规则设置为 latin1_swedish_ci 并且我需要是 utf8 才能正确呈现存储在数据库中的特殊字符。
如果我更改排序规则,这可能会解决我的问题,修复旧帖子吗?
我是否在更改排序规则之前关闭网站,是否需要重新启动才能生效?我有点担心破坏数据,因为我的用户会因为丢失他们的历史帖子而非常沮丧。
我没有设置新数据库,我已经升级了现有数据库,并且需要保留历史数据。
我遵循了下面发布的答案之一,它适用于升级前输入数据库的数据,但现在使用各种“代替撇号等”呈现较新的数据。
【问题讨论】:
-
“现在我在输出的文本中有很多菱形问号。” - 所以检查文件的编码,如果仍然不起作用,传递 UTF -8 查询前
-
如果您担心损坏数据,只需将该数据库复制到 tmp 表中
-
谢谢 - 毕竟解决方案非常简单!我使用 mysql_query('SET NAMEs utf8') 解决了历史问题。