Непоследовательное поведение для числового форматера с порядковым номером
Сегодня я столкнулся со странной вещью, и я не уверен, что с этим делать.
Вот мой код:
<?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, а не код, обычно мы не вносим запись в журнал изменений для каждого изменения данных.