Carbon:元音变音创建损坏的数组

Carbon: Umlaut creates broken array

目前我正在尝试使用以下辅助函数自动创建一个包含所有月份名称的数组:

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;
   }
}

具有以下输出:

array:12 [
      0 => "Januar"
      1 => "Februar"
      2 => b"März"
      3 => "April"
      4 => "Mai"
      5 => "Juni"
      6 => "Juli"
      7 => "August"
      8 => "September"
      9 => "Oktober"
      10 => "November"
      11 => "Dezember"
    ]

如您所见,某些东西 发生在值 "März"(第 3 个键)旁边。我只能想象变音符号“ä”存在一些问题。

你需要像这样将它包装在 utf8_encode 函数中:

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