setlocale / strftime停止在Web浏览器中工作

问题描述

几天前,我网页上所有与日期相关的输出都停止了翻译为用户选择的语言。我正在使用这个简单的测试脚本来尝试确定出了什么问题:

<?php
exec("locale -a",$output);
var_dump($output);

echo setlocale(LC_ALL,"de_DE.utf8")."\n";
echo strftime("%A",time())."\n";
?>

从外壳程序运行它时,会收到以下正确输出:

php test.php
array(12) {
  [0]=>
  string(1) "C"
  [1]=>
  string(7) "C.UTF-8"
  [2]=>
  string(5) "de_DE"
  [3]=>
  string(10) "de_DE@euro"
  [4]=>
  string(14) "de_DE.iso88591"
  [5]=>
  string(20) "de_DE.iso885915@euro"
  [6]=>
  string(10) "de_DE.utf8"
  [7]=>
  string(7) "deutsch"
  [8]=>
  string(10) "en_US.utf8"
  [9]=>
  string(10) "fr_FR.utf8"
  [10]=>
  string(6) "german"
  [11]=>
  string(5) "POSIX"
}
de_DE.utf8
Dienstag

但是从任何Web浏览器加载后,输出将更改为:

array(12) {
  [0]=>
  string(1) "C"
  [1]=>
  string(7) "C.UTF-8"
  [2]=>
  string(5) "POSIX"
  [3]=>
  string(5) "de_DE"
  [4]=>
  string(14) "de_DE.iso88591"
  [5]=>
  string(20) "de_DE.iso885915@euro"
  [6]=>
  string(10) "de_DE.utf8"
  [7]=>
  string(10) "de_DE@euro"
  [8]=>
  string(7) "deutsch"
  [9]=>
  string(10) "en_US.utf8"
  [10]=>
  string(10) "fr_FR.utf8"
  [11]=>
  string(6) "german"
}
de_DE.utf8
Tuesday

无论我使用哪种安装的语言环境,最后一行都不会更改。 setlocale()的输出似乎没有正确设置,因为它没有返回false。我在网上找不到任何情况,该呼叫似乎可以正常工作,但没有任何效果(在浏览器中)。我还尝试了多次dpkg-reconfigure localesupdate-localesystemctl restart apache2,没有任何区别。

我正在PHP 7.3.19-1~deb10u1上运行Apache/2.4.38 (Debian)Debian GNU/Linux 10 (buster)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...