【问题标题】:PHP setlocale and strftime broken characters? (nb_NO)PHP setlocale 和 strftime 坏字符? (nb_NO)
【发布时间】:2016-02-01 22:28:47
【问题描述】:

我正在尝试使用 strftime 以挪威语显示日期,如下所示:

echo strftime('%a,%e.%m.', $timestamp);

但是,对于像Sunday, February 6 这样的日期,上面应该格式化为Lø,02.6 返回为L�., 6.02. 当尝试使用%A 显示全天时,它呈现为L�rdag

(我不确定这个字符是否只是在 Mac 上对我显示错误,但here is a screenshot 以防万一)

在我的 HTML 的头部,我设置了 <meta charset="UTF-8"> 并通过 PHP,它是通过 setlocale(LC_ALL, 'nb_NO'); 设置的

编辑 甚至直接使用php -a进入服务器上的php控制台并执行:

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

我收到l�.

【问题讨论】:

  • 你运行的是什么系统?如果是 Linux,请打开控制台并运行 locale -a 并查看是否安装了 nb_NO.UTF8

标签: php internationalization locale


【解决方案1】:

在进行了一些故障排除后,尤其是在编辑中直接进行控制台测试之后,我运行了locale -a,并注意到未通过我原来的sudo locale-gen nb_NO 安装 UTF-8 语言环境,因此我运行了:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多