Php 碳:乌姆劳特创造了破碎的阵列

Php 碳:乌姆劳特创造了破碎的阵列,php,laravel,php-carbon,Php,Laravel,Php Carbon,目前,我正在尝试使用以下帮助函数自动创建一个名为“所有月份”的数组: if ( ! function_exists('getMonthsArray')) { function getMonthsArray() { $monthArray = array(); setlocale(LC_TIME, 'de_DE.utf8'); for ($m=1; $m<=12; $m++) { $dt = \Carbon\Car

目前,我正在尝试使用以下帮助函数自动创建一个名为“所有月份”的数组:

if ( ! function_exists('getMonthsArray'))
{
   function getMonthsArray()
   {
       $monthArray = array();
       setlocale(LC_TIME, 'de_DE.utf8');

       for ($m=1; $m<=12; $m++) {
           $dt = \Carbon\Carbon::create(2016, $m, 1, 0, 0, 0)->formatLocalized('%B');

        array_push($monthArray, $dt);
    }

    return $monthArray;
   }
}

如您所见,值“März”(第三个键)旁边出现了一些东西。我只能想象umlaut“ä”有一些问题

您需要将其包装在utf8\U编码函数中,如下所示:

$dt = utf8_encode(\Carbon\Carbon::create(2016, $m, 1, 0, 0, 0)->formatLocalized('%B'));

文档中的注释有帮助吗?我相信这与多字节字符串有关,不应该成为问题。你正在运行什么版本的PHP?Kkinsey-No:(@catis 5.6。16@catis你的评论不是解决问题的方法,但它是正确的答案。如果你想创造一个答案,我会接受它。
$dt = utf8_encode(\Carbon\Carbon::create(2016, $m, 1, 0, 0, 0)->formatLocalized('%B'));