Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 法语地区翻译字符显示为问号/错误_Php_Codeigniter - Fatal编程技术网

Php 法语地区翻译字符显示为问号/错误

Php 法语地区翻译字符显示为问号/错误,php,codeigniter,Php,Codeigniter,我使用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'); 我在现场得到那个问号符号。如何修复此问题,请提前感谢注意,setlocale将使用给定列表中它可以找到的第一个区域设置。最有可

我使用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');

我在现场得到那个问号符号。如何修复此问题,请提前感谢

注意,
setlocale
将使用给定列表中它可以找到的第一个区域设置。最有可能的是
fr\u fr
区域设置首先匹配,并且没有使用UTF-8,和/或您根本没有安装该区域设置的UTF-8变体,和/或您的名称错误。使用
locale-a
(CLI命令)检查已安装的区域设置,并在像
fr\u 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

看起来字符集有问题。这与本地化有关,因为您不能显示E急性口音。您的代码很好。首先对文档进行注释:
如果返回了奇怪的字符,请对UTF-8字符使用utf8_encode(strftime())
am使用charset也@Debflav PHP手册上的大多数注释都是毫无价值的,尤其是当它们与编码有关时
utf8\u encode
是绷带,不是正确的固定方法。它应该是你最后的办法,用它修补
strftime
的每次调用。修复您的区域设置应该是主要目标;