【问题标题】:setlocale php function returns false even if the locale is available in the platform即使平台中的语言环境可用,setlocale php 函数也会返回 false
【发布时间】:2013-11-13 11:00:36
【问题描述】:

我在一个云平台上工作,服务器是 Apache。

在其中一个站点实例中,php 脚本 setlocale(LC_ALL, "en_GB.utf8");总是返回 false。

当我执行 locale -a 时,可以在平台中找到这个 locale,“en_GB.utf8”。 还注意到, setlocale(LC_ALL, 0);返回“C”。

这里 PHP/Apache 似乎不知道底层平台语言环境。有人可以建议我以防万一有什么问题吗?

【问题讨论】:

    标签: php apache setlocale


    【解决方案1】:

    在尝试LC_ALL 之前,请先尝试LC_TIME

    setlocale(LC_TIME, "");
    setlocale(LC_ALL, "en_GB.utf8")
    

    看看有没有帮助...

    【讨论】:

      【解决方案2】:

      您必须重新加载 apache 配置才能让 php/setlocale 识别新的语言环境。

      我遇到了同样的问题(语言环境已安装并在平台上可用)但setlocale 确实返回了false,直到我使用service apache2 reload 重新加载了 apache 配置。

      【讨论】:

        【解决方案3】:
        setlocale(LC_ALL, NULL)
        setlocale(LC_ALL, "en_GB.UTF-8")
        

        ...为我做的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-22
          • 2012-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多