PHP Windows 10 utf-8 setlocale

Сегодня столкнулся с тем, что мое приложение на PHP корректно не отрабатывает под Windows 10 тот функционал, который требует задания локали.

например у меня было

<?php
setlocale(LC_ALL,'ru_RU.UTF-8');

Такая локаль есть к примеру в Linux, но в Windows нет.

Открываем эту документацию и видим что 65001 равно utf-8

В PHP прописываем

<?php
$locale = setlocale(LC_ALL, 'Russian_Russia.65001');

echo $locale."\n";

echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978)); 

Запускаем в терминале, видим результат

Ну и чтобы 2.5+3 получалось 5.5 а не 5,5

<?php
setlocale(LC_NUMERIC, 'C');
Показать комментарии