【发布时间】:2013-02-01 15:26:32
【问题描述】:
我得到了应该显示西班牙字符的可爱 � 框。 (即:ñ、á 等)。我已经确保我的 meta http-equiv 设置为 utf-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我还确保页眉也设置为 utf-8:
header('Content-type: text/html; charset=UTF-8');
到目前为止,这是我的代码的开始阶段:
<?php
setlocale(LC_ALL, 'es_MX');
$datetime = strtotime($event['datetime']);
$date = date("M j, Y", $datetime);
$day = strftime("%A", $datetime);
$time = date("g:i", $datetime);
?>
<a href="/<?= $event['request'] ?>.html"><?= $day ?> <?= $time ?></a>
上面的代码在 where 语句中。我已经读过切换数据库中的排序规则也可能是一个因素,但我已经将它设置为 UTF-8 General ci。另外,该列中唯一的内容是 DateTime 反正它是数字,无论如何都无法整理。
结果:s�bado 8:00
一如既往地非常感谢任何帮助。
【问题讨论】:
-
您是否强制 php->mysql 数据库连接也为 UTF?如果 php->mysql 连接是别的东西,那么拥有一个 db 和 UTF 格式的 php 输出是没有意义的。 ENTIRE 渲染管道必须是相同的字符集,或加入适当的字符集转换逻辑...如果在任何阶段不匹配,您将得到损坏的字符。
-
php 的 default_charset 是否设置为 utf-8 ?
-
是的,我也将连接设置为 UTF 8... mysql_set_charset('utf8', $connnection);
-
default_carset... 会在 php ini 文件中吗?
-
是的 php ini 有 default_charset,如果你无权访问它,请使用 ini_set('default_charset', 'UTF-8');
标签: php mysql date special-characters strftime