法语区域设置翻译字符显示为问号/错误

时间:2015-02-06 08:53:01

标签: php codeigniter

enter image description here

在使用date()函数的国家/地区的php语言翻译中出现此错误。

date_default_timezone_set("Europe/Paris");
setlocale( LC_TIME,'fr_FR', 'fr_FR.utf8', 'fr_FR.UTF8', 'French');

我正在使用strftime

echo strftime('%d.%m.%Y');

我在现场收到问号符号。如何解决这个问题,提前谢谢

1 个答案:

答案 0 :(得分:1)

请注意,setlocale将使用您可以找到的给定列表中的第一个区域设置。很可能fr_FR区域设置首先匹配,并且未使用UTF-8,和/或您根本没有安装该区域设置的UTF-8变体和/或您的名称错误。使用locale -a(CLI命令)检查已安装的语言环境,并在fr_FR等通用版本之前优先考虑UTF-8版本。

我的语言环境:

$ locale -a | grep fr_FR
fr_FR
fr_FR.ISO8859-1
fr_FR.ISO8859-15
fr_FR.UTF-8

因此:

setlocale(LC_TIME, 'fr_FR.UTF-8', 'fr_FR', 'French');

为了证明它的不同之处:

$ php -r 'setlocale(LC_TIME, "fr_FR.ISO8859-1"); echo strftime("%A %B");'
Vendredi f?vrier

$ php -r 'setlocale(LC_TIME, "fr_FR.UTF-8"); echo strftime("%A %B");'
Vendredi février