【问题标题】:Encoding problems with MySQLMySQL的编码问题
【发布时间】:2012-05-01 16:05:36
【问题描述】:

我得到的是小盒子,而不是瑞典字符 å、ä 和 ö,尽管我在任何我能想到的地方都使用 UTF-8!我用 UTF-8 保存了文件,没有从记事本中的 BOM,HTML 页面有 meta charset="utf-8",我将数据库中的表更改为 UTF8_swedish_ci。我错过了什么?求一些帮助!谢谢!

编辑: 使用拉丁文并以拉丁文而不是UTF8保存所有文件会更好吗?但是我还能在 HTML 头中使用 meta charset="utf-8" 吗?

【问题讨论】:

  • 您在 phpMyAdmin 中看到的数据正确吗?
  • Yes 在 phpMyAdmin 中不行。对吗?你能解释一下吗?
  • 你在做其他查询之前是在做mysql_query("SET NAMES UTF8")吗?
  • 是的!我做了很多事情,但没有任何效果! :(

标签: php mysql


【解决方案1】:

检查您在 MySQL 连接中使用的排序规则?设置正确的。

您可以使用查询更改当前连接的排序规则: set names utf8 collate utf8_swedish_ci")

【讨论】:

  • 抱歉,我有一段时间没用PHP了,是不是应该把上面的代码像查询一样添加到表格中?
  • @3D-kreativ,是的,您在与查询相同的连接上执行该命令(就像查询一样),并且在查询之前。
  • 确保您的数据在数据库中正确存储。如果插入错误的编码数据,则应导出结束重新导入。
  • 现在开始工作了!首先我没有写正确的查询,但是使用“SET NAMES 'utf8'”它变得更好了!谢谢! :)
【解决方案2】:

我认为 PHP 存在问题。 我遇到了您的情况:UTF8 中的数据库,UTF8 中的 HTML 页面,但是我通过 mysql_fetch_assoc() 获得的数据编码不正确(因此,显示 ? 字符,如您的情况)。

我的解决方案是在我的 php 源码中使用 utf8_encode()utf8_decode() 来处理数据库的输入和输出。

看看这个解决方案是否适合你。

PS。排序规则不是 char 编码。谷歌什么是排序规则。 据我所知(不多)默认为 swedish_ci 因为瑞典语是最完整的字符。如果我错了,请纠正。

【讨论】:

    猜你喜欢
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 2021-10-29
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多