【发布时间】:2014-07-22 19:02:46
【问题描述】:
我很难处理字符集,我怀疑我的函数显示日期返回非 UTF-8 字符(août 被菱形 août 内的问号替换)。
在我的本地服务器上工作时一切都很好,但是当我将我的代码推送到我的登台服务器上时,它无法正确显示。
- 我的 php 文件保存为 UTF-8 NO BOM
- 如果我检查我的输出页面,标题指示 UTF-8。
- 我的本地机器是安装了 MAMP 的 Mac,而我的声明服务器安装了 CentOS 和 cPanel。
这是我怀疑导致问题的部分:
$langCode = "fr_FR"; /* Alos tried fr_FR.UTF-8 */
setlocale(LC_ALL, $langCode);
$monthName = _(strftime("%B",strtotime($dateStr)))
echo $monthName; /* Alos tried utf8_encode($monthName) worked on my staging server but not on my local server ! I'm using */
【问题讨论】:
-
我认为问题与操作系统或网络服务器有关。
-
août 看起来像正确的 UTF-8,但用作 Latin-1 或类似的。您的浏览器显示的页面字符集是什么?
-
试试这个
echo utf8_decode($monthName); -
查看您的服务器发送的标头。我怀疑(作为@triplee)他发送
Content-Type: text/html; charset=latin-1 -
嘿,确保问题出在服务器上,只需尝试在浏览器的视图选项中将字符编码设置为 Unicode 并查看结果。