php - mysql + php编码

标签 php mysql encoding

我知道有很多这样的问题,但我提出了一个新问题,因为在我看来,它是针对每种情况的。

因此,我的页面以UTF-8 格式显示。数据取自具有 utf8_unicode_ci collat​​ion 的 mySQL。我显示的数据是字符串 - 1 Bröllops-Festkläder

这里有一些 unicode 字符,它们应该可以正常显示,但实际上没有。在我的页面上,这些只是一堆象形文字。

现在,有趣的情况:

我正在使用 phpMyAdmin 来跟踪数据库中发生的事情。该网站能够导入包含客户数据的 CSV 文档并单独修改每个客户。如果我导入包含这些字符的 CSV 文档,它们将被写入数据库,在 phpMyAdmin 中可读,但在我的页面上不可读。如果我使用我的脚本修改客户信息并从浏览器中键入这些字符,则反之亦然 - 它们在页面上可读,但在 phpMyAdmin 中不可读,所以很明显编码是不同的。我花了很长时间想出正确的组合,但我做不到。

更新:Deceze 在下方发布了一个链接,我将其复制到此处以使其更引人注目。我相信这将为面临类似问题的许多人节省数小时和数天的时间 - Handling Unicode Front to Back in a Web App

最佳答案

这里涉及到几件事。如果你的数据库编码和 html 编码都很好,但你仍然看到伪影,很可能你的数据库连接没有使用相同的编码,从而导致数据损坏。如果您手动连接,则可以通过在 connect() 到数据库后的第一件事中执行查询 SET NAMES UTF8 来轻松强制执行 utf 编码。每个连接只执行一次就足够了。

编辑:但有一个重要提示 - 根据您将数据放入数据库的方式,您的数据库内容可能需要修复,因为如果您通过断开的连接放置它,它可能会损坏。因此,如果有人面临同样的问题 - 一旦您设置好所有内容,请确保您检查的是新鲜数据集,否则您仍然可能看错东西,即使现在一切正常。

关于php - mysql + php编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144116/

相关文章:

php - 使用 PHP、MySQL、Jquery 和 Ajax 创建 5 星评级系统

mysql - 根据多行的总分对 mysql 中的用户进行排名

php - 如何实现像Facebook这样的通知系统?

c# - 在 SQL Server 中转换为二进制后如何在 C# 中恢复字符串

php - 将 MySQL 的 POINT 转换为 PHP 中的文本

php - 使用 PDO 优化循环中的多个 MySQL 查询

php - 填充不起作用 TCPDF

mysql - INSERT 并更新重复键

python - "utf-8"编码在开发服务器上有效,但在部署时无效

grails - Grails:BootStrap.groovy类的编码