【问题标题】:UTF-8 string wrongly encoded somewhereUTF-8 字符串在某处错误编码
【发布时间】:2011-01-29 19:00:15
【问题描述】:

我有一个列,title,其格式为 CHAR(50) utf_genral_ci。我有一个 php 脚本,它成功地插入了一个新行,其 title 值“Bjørn”。

当我想再次将其拔出时出现问题。一旦它被分配给一个变量,字符串就是“Bjørn”。

有些人将我指向 mb_*(),但是因为当我从表单中检索它并插入它时它不是问题,但只有当我从 mysql 检索它时,我不相信它会是它。

我已经确定它实际上在 mysql 中编码正确,并且服务器、数据库、表、列和连接都是 UTF-8。

请有人把我从这个噩梦中拯救出来!

提前致谢

【问题讨论】:

  • 尝试在执行您的选择查询之前执行这两个查询set names utf8set character set utf8
  • 您是否检查过您的页面编码? Firefox->view->默认内容编码是什么!
  • @Satya 所说的。您的输出编码可能有误

标签: php mysql encoding utf-8 character-encoding


【解决方案1】:

原来是因为我在字符串上使用了 php 函数 htmlentities()。自从我上次尝试以来很奇怪,它也直接从数据库中输出错误。

我整天都遇到这个问题,所以一个问题的解决方案导致了另一个问题。

感谢您抽出宝贵时间。

【讨论】:

    【解决方案2】:

    您是否使用 phpMyAdmin 或 MySQL Workbench 等管理工具检查数据库中的值?如果显示不正确,请尝试使用iconv ($in_charset, 'utf-8', $str) 将名称转换为 utf-8。如果正确,请确保您的浏览器中的编码设置为 UTF-8。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-09
      • 2013-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多