奇怪的 UTF-8 MAMP 问题

问题描述 投票:0回答:1

在进一步的文本中,我将把一些字符称为正确的UTF字符,这是正常形式的utf-8编码字符(

á
)和不正确的UTF字符,这是相同的,但搞乱了utf- 8 个字符(例如显示为
ý
)。

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

当数据库移动到登台/开发服务器时,在 MAMP 上工作的同一数据库停止工作并显示为不正确 - 正如它们在 MAMP 上的输入一样。

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

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

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

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

php mysql utf-8 mamp
1个回答
3
投票

我实际上经历过几次这种情况。我执行以下操作来解决这个问题。

一旦连接到数据库:

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

每页顶部:

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

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

<form accept-charset="utf-8"></form>
© www.soinside.com 2019 - 2024. All rights reserved.