【问题标题】:Weird UTF-8 MAMP issue奇怪的 UTF-8 MAMP 问题
【发布时间】:2011-01-13 20:08:12
【问题描述】:

在进一步的文本中,我将一些字符称为正确的 UTF 字符,即 utf-8 编码字符,它的 ok 形式 (á) 和 不正确的 UTF 字符 strong>,也是一样的,但是混淆了 utf-8 字符(例如显示为ý)。

因此,在 MAMP 上运行了 CMS——它是为客户本地开发的网站。现在,在管理中,我输入了正确的 utf-8 字符。在 localhost 上浏览时,它显示为正确的 utf-8 字符。然而,在 utf-8 编码的 mysql 中,它显示为不正确的 utf-8 字符(在 Sequel Pro/phpMyAdmin 中)。

当数据库移动到 staging/dev 服务器时,在 MAMP 上工作的同一个数据库停止工作并显示为不正确 - 就像它们在 MAMP 上的输入一样。

但是,如果我在登台服务器上打开管理(完全相同的代码)并输入正确的字符,它们不仅会正常显示,而且还会作为正确的字符保存在 mysql 中。

我真的很震惊——同样的代码,同样的数据库,它仍然以不同的方式运行。

你有没有注意到类似的事情,也就是说,你能免除我查看数百万个不同入口点的痛苦,因为 utf-8 可能会被搞砸。

P.S.:我认为这可能与 MAMP 相关(奇怪的 utf-8 设置),而不是严格与应用程序相关。 P.S.:该应用程序使用 MySQLi,每个文件都是 UTF-8 编码的:/ 唯一不同的是,在 mamp 上我只使用主机/用户 mysql 连接,而在暂存数据库上引入了套接字。

谢谢。

【问题讨论】:

  • 查看服务器和客户端的默认编码设置。例如,您可以在连接数据库后在代码中运行SET NAMES utf8,以在运行时设置客户端编码。

标签: php mysql utf-8 mamp


【解决方案1】:

我实际上已经经历过几次。我做了以下工作来解决它。

只要我连接到数据库:

mysql_query("SET NAMES 'utf8'", $db_con);

在每一页的顶部:

header('Content-Type: text/html; charset=utf-8');

如果您想真正迂腐,使用任何用于发布数据的表格:

<form accept-charset="utf-8"></form>

【讨论】:

  • 是的,就是这样(如果你写的早一点:)
猜你喜欢
  • 1970-01-01
  • 2014-08-20
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 2011-08-08
  • 2011-04-08
  • 1970-01-01
相关资源
最近更新 更多