无法回显“à”而不是php打印“Ô

时间:2014-10-07 03:46:35

标签: php datetime yii translation

我正在尝试将日期/时间翻译成法语。下面是我的代码但是我在获取字符“à”时遇到问题,php给我的是“Ô字符。

setlocale(LC_TIME, "");

setlocale(LC_TIME, 'french');
echo 'locale - ' . setlocale(LC_TIME, '0');
echo ' : month - ' . strftime('Le %d %B %Y') . 'à'; //Le 07 Octobre 2014 à

1 个答案:

答案 0 :(得分:3)

这是因为浏览器出于某种原因使用了错误的字符编码。为了确保不会发生这种情况,您应该明确设置字符编码,如下所示:

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

在设置HTTP标头时(这就是上面提到的),在回显任何内容之前这样做很重要。因此,最好将标题设置为脚本中的第一个内容。

在HTML中设置它通常也是个好主意。将其放入<head>(或者如果您没有<head>,请将其放在<title>和其他任何内容之前。

<meta charset="utf-8">

所以,例如:

<?php
header('Content-Type: text/html; charset=utf-8');
?>
<meta charset="utf-8">
<title>This is my website</title>
<p>Bla bla bla...</p>

如果您使用的是Apache,那么您可以让它为您处理标题。这可以通过将以下内容添加到.htaccess文件来完成。将它放在网站文件夹结构的根目录中。

AddDefaultCharset utf-8

我不熟悉其他服务器,但你也可以让他们为你做。搜索StackOverflow以了解如何或阅读服务器的文档。