PHP setlocale和strftime坏了字符? (nb_NO)

时间:2016-02-01 22:28:47

标签: php internationalization locale

我试图用strftime显示挪威语的日期,如下所示:

1. toString()

但是,对于echo strftime('%a,%e.%m.', $timestamp);之类的日期,上面的格式应为Sunday, February 6,则返回Lø,02.6当尝试使用L�., 6.02.显示整天时,它会呈现为%A

(我不确定这个角色是否仅在Mac上显示错误,但here is a screenshot以防万一)

在我的HTML标题中,我设置了L�rdag并通过PHP设置了<meta charset="UTF-8">

修改 甚至直接进入服务器上的php控制台setlocale(LC_ALL, 'nb_NO');并执行:

php -a

我得到setlocale(LC_ALL, 'nb_NO'); echo strftime('%a','20160206');

1 个答案:

答案 0 :(得分:0)

经过一些故障排除后,特别是在编辑中进行直接控制台测试之后,我运行了locale -a,发现原来的sudo locale-gen nb_NO没有安装UTF-8语言环境,所以我运行了:< / p>

sudo locale-gen nb_NO.utf8然后还必须相应地设置区域设置setlocale(LC_ALL, 'nb_NO.utf8');,现在一切正常。