Laravel 碳格式返回奇怪的字符
我正在使用Laravel中的Carbon在我的项目中生成本地化的日期标签 在我的控制器中,我使用以下代码生成标签:Laravel 碳格式返回奇怪的字符,laravel,localization,php-carbon,Laravel,Localization,Php Carbon,我正在使用Laravel中的Carbon在我的项目中生成本地化的日期标签 在我的控制器中,我使用以下代码生成标签: $today = Carbon::now(); $labels[] = [ 'date' => $today->format('Y-m-d'), 'label' => ('Dziś ('.$today->formatLocalized('%a, %e %b').')') ]; $labels[] =
$today = Carbon::now();
$labels[] = [
'date' => $today->format('Y-m-d'),
'label' => ('Dziś ('.$today->formatLocalized('%a, %e %b').')')
];
$labels[] = [
'date' => (clone $today )->addDays(1)->format('Y-m-d'),
'label' => 'Jutro ('.(clone $today)->addDays(1)->formatLocalized('%a, %e %b').')'
];
$labels[] = [
'date' => (clone $today )->addDays(2)->format('Y-m-d'),
'label' => (clone $today)->addDays(2)->formatLocalized('%a, %e %b')
];
$labels[] = [
'date' => (clone $today )->addDays(3)->format('Y-m-d'),
'label' => (clone $today)->addDays(3)->formatLocalized('%a, %e %b')
];
$labels[] = [
'date' => (clone $today )->addDays(4)->format('Y-m-d'),
'label' => (clone $today)->addDays(4)->formatLocalized('%a, %e %b')
];
在出现任何特定于语言的变音符号之前,它都可以正常工作。如果我用dd(…)
输出$labels
,我得到的是:
array:5 [▼
0 => array:2 [▼
"date" => "2017-04-27"
"label" => "Dziś (czw, 27 kwi)"
]
1 => array:2 [▼
"date" => "2017-04-28"
"label" => b"Jutro (pi±, 28 kwi)"
]
2 => array:2 [▼
"date" => "2017-04-29"
"label" => "sob, 29 kwi"
]
3 => array:2 [▼
"date" => "2017-04-30"
"label" => "nie, 30 kwi"
]
4 => array:2 [▼
"date" => "2017-05-01"
"label" => "pon, 1 maj"
]
]
请注意第二项的奇怪标签:
"label" => b"Jutro (pi±, 28 kwi)"
正确的标签应该是:“Jutro(pią,29 kwi)”
当然,这样的标签在Blade中无法正确输出
怎么了?是因为编码还是我使用的formatLocalized
方法有误
仅供参考:我已在我的AppServiceProvider
的boot()
方法中设置了区域设置:
setlocale(LC_TIME, 'pl_PL');
\Carbon\Carbon::setLocale('pl');
嗨,这个问题可能与波兰语所需的utf-8编码有关。你可以看到我对类似问题的答案 TL;博士
使用
setLocale
函数时,使用utf-8版本的locale-setLocale(LC_TIME,'pl_pl.utf-8')代码>您好,此问题可能与波兰语所需的utf-8编码有关。你可以看到我对类似问题的答案
TL;博士
使用setLocale
函数时,使用utf-8版本的locale-setLocale(LC_TIME,'pl_pl.utf-8')代码>