Это сработало для меня:
setlocale(LC_MONETARY, 'en_GB.UTF-8');
money_format('%n', 1000);
Это похоже на выбранное решение, однако оно не сработало для меня. Зачем? Причина в том, что языковой стандарт en_GB
не был определен в моей системе, только en_GB.UTF-8
:
$ locale -a | grep "en_GB"
en_GB.utf8
Кроме того, используя кодовый набор UTF-8 напрямую, можно сохранить дополнительный вызов utf8_encode
.