Непоследовательное поведение для числового форматера с порядковым номером

Сегодня я столкнулся со странной вещью, и я не уверен, что с этим делать.

Вот мой код:

<?php 
$nf = new \NumberFormatter("en_UK", \NumberFormatter::ORDINAL);
die(var_dump($nf->format(1)));

Этот код выводит следующее в PHP версии 5.6.20:

строка (3) "1-й"

но он выводит следующее в PHP версии 5.6.14:

строка (6) "1ˢᵗ"

Я не уверен, что с этим делать. Версия с надписью - это то, чего я не ожидал. Я просмотрел журналы изменений, но не видел документированных изменений. Кто-нибудь знает, является ли это предполагаемым поведением? Любой способ заставить его вернуться к первому поведению (потому что это выглядит странно при рендеринге в формах)?

При установке PHP 5.6.20 используется версия ICU 4.8.1.1, а в версии 5.6.14 - версия 4.4.0.1.

1 ответ

Решение

Я бы просто обновился до более новой ICU.

Странный верхний индекс был исправлен в CLDR 2.0. Он был представлен в этом билете много лет назад. Я не уверен, какая версия CLDR представила его, но, к сожалению, меня зовут рецензентом. Может быть, это казалось хорошей идеей в то время.

Это данные из CLDR, а не код, обычно мы не вносим запись в журнал изменений для каждого изменения данных.

Другие вопросы по тегам