1

今日、私は奇妙なことに遭遇しました。序数付き数値書式の動作が一貫していない

ここに私のコードです:

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

このコードはPHPバージョン5.6.20に次のように出力します

文字列(3) "第一"

が、それは出力PHPバージョン5.6.14以降:

string(6) "1ˢᵗ"

私はこれをどうしたらよいかわかりません。上付きのバージョンは私が期待していなかったものです。私は変更ログを調べましたが、この変更が文書化されていないことを確認しました。これが意図された行動であれば誰でも知っていますか?最初の動作に強制的に戻す方法(フォームでレンダリングすると奇妙に見えるため)

PHP 5.6.20インストールが5.6.14ながら、ICUのバージョン4.8.1.1を使用していることは、私はちょうど新しいICUにアップグレードしたいICUバージョン4.4.0.1

答えて

1

を使用しています。

奇妙な上付き文字はCLDR 2.0に固定されました。これはthis ticket年前に導入されました。私はそれを導入したCLDRのバージョンがわからないが、残念ながら私の名前は査読者の上にある。おそらく、当時は良いアイデアのようでした。

これはCLDRのデータであり、コードではありません。通常、データの変更ごとに変更ログエントリを作成しません。

関連する問題