【发布时间】: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,以在运行时设置客户端编码。