From 3f1ed2000792a7e06c73a3b5f1506d064b88dd2c Mon Sep 17 00:00:00 2001 From: Moamen Eltouny Date: Tue, 6 Oct 2026 21:13:17 +0300 Subject: [PATCH 1/3] Normalize the decimal digits added in Unicode 15 to 17 --- src/Resources/numbers.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Resources/numbers.php b/src/Resources/numbers.php index 7d0da7a..b12898c 100644 --- a/src/Resources/numbers.php +++ b/src/Resources/numbers.php @@ -14,8 +14,9 @@ 0x0030, 0x0660, 0x06F0, 0x07C0, 0x0966, 0x09E6, 0x0A66, 0x0AE6, 0x0B66, 0x0BE6, 0x0C66, 0x0CE6, 0x0D66, 0x0DE6, 0x0E50, 0x0ED0, 0x0F20, 0x1040, 0x1090, 0x17E0, 0x1810, 0x1946, 0x19D0, 0x1A80, 0x1A90, 0x1B50, 0x1BB0, 0x1C40, 0x1C50, 0xA620, - 0xA8D0, 0xA900, 0xA9D0, 0xA9F0, 0xAA50, 0xABF0, 0xFF10, 0x104A0, 0x10D30, 0x11066, - 0x110F0, 0x11136, 0x111D0, 0x112F0, 0x11450, 0x114D0, 0x11650, 0x116C0, 0x11730, 0x118E0, - 0x11950, 0x11C50, 0x11D50, 0x11DA0, 0x16A60, 0x16AC0, 0x16B50, 0x1D7CE, 0x1D7D8, 0x1D7E2, - 0x1D7EC, 0x1D7F6, 0x1E140, 0x1E2F0, 0x1E950, 0x1FBF0, + 0xA8D0, 0xA900, 0xA9D0, 0xA9F0, 0xAA50, 0xABF0, 0xFF10, 0x104A0, 0x10D30, 0x10D40, + 0x11066, 0x110F0, 0x11136, 0x111D0, 0x112F0, 0x11450, 0x114D0, 0x11650, 0x116C0, 0x116D0, + 0x116DA, 0x11730, 0x118E0, 0x11950, 0x11BF0, 0x11C50, 0x11D50, 0x11DA0, 0x11DE0, 0x11F50, + 0x16130, 0x16A60, 0x16AC0, 0x16B50, 0x16D70, 0x1CCF0, 0x1D7CE, 0x1D7D8, 0x1D7E2, 0x1D7EC, + 0x1D7F6, 0x1E140, 0x1E2F0, 0x1E4F0, 0x1E5F1, 0x1E950, 0x1FBF0, ]; From cafcbbe026b020a56fd9560fd9a09ab83f73b47f Mon Sep 17 00:00:00 2001 From: Moamen Eltouny Date: Tue, 6 Oct 2026 21:13:17 +0300 Subject: [PATCH 2/3] Cover the Unicode 16 composition characters in the NFC fast path --- src/Normalization/UnicodeNormalizer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Normalization/UnicodeNormalizer.php b/src/Normalization/UnicodeNormalizer.php index 33ab031..3ca02b0 100644 --- a/src/Normalization/UnicodeNormalizer.php +++ b/src/Normalization/UnicodeNormalizer.php @@ -34,7 +34,7 @@ final class UnicodeNormalizer . '\x{09DC}\x{09DD}\x{09DF}\x{0A33}\x{0A36}\x{0A59}-\x{0A5B}\x{0A5E}\x{0B5C}\x{0B5D}\x{0F43}-\x{0FB9}' . '\x{1100}-\x{11FF}\x{1F71}-\x{1FFD}\x{2000}\x{2001}\x{2126}\x{212A}\x{212B}\x{2329}\x{232A}\x{2ADC}' . '\x{A960}-\x{A97F}\x{D7B0}-\x{D7FF}\x{F900}-\x{FAFF}\x{FB1D}-\x{FB4F}\x{1D15E}-\x{1D1C0}' - . '\x{2F800}-\x{2FA1F}]/u'; + . '\x{113B8}\x{113BB}\x{113C2}\x{113C9}\x{1611E}-\x{16120}\x{16129}\x{16D67}\x{2F800}-\x{2FA1F}]/u'; private const COMPATIBILITY_FORMS = '/(?:[\x{FB00}-\x{FDFF}\x{FE70}-\x{FEFE}\x{FF00}-\x{FFEF}\x{1D400}-\x{1D7FF}]' . '|(?=\pL)[\x{2100}-\x{214F}])+/u'; From c78009be343b234256f93b4c64ae2d4425a1382a Mon Sep 17 00:00:00 2001 From: Moamen Eltouny Date: Tue, 6 Oct 2026 21:27:23 +0300 Subject: [PATCH 3/3] Document the Unicode 15 to 17 fixes for 8.1.1 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32d4d1e..5a89982 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. +## 8.1.1 - 2026-10-06 + +### Fixed + +- Digits from the scripts added in Unicode 15 to 17 (Kawi, Nag Mundari, Garay, Sunuwar, Gurung Khema, Kirat Rai, Ol Onal, Tolong Siki, Myanmar Pa-O and Eastern Pwo Karen, and outlined digits) are converted to ASCII digits. +- Unicode normalization no longer skips Tulu-Tigalari, Gurung Khema and Kirat Rai text when PHP's PCRE library uses older Unicode data than ext-intl. + ## 8.1.0 - 2026-10-06 The `8.1.x` line targets PHP 8.1. Slug output is identical to `8.0.1`. See [UPGRADE.md](UPGRADE.md#from-80-to-81).