Browse Source
ext/mbstring: Update to Unicode 17.0 (#19796)
Updates UCD to Unicode 17.0 (released 2025 Sep).
pull/19827/head
tekimen
1 month ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with
4214 additions and
4116 deletions
-
NEWS
-
UPGRADING
-
ext/mbstring/libmbfl/mbfl/eaw_table.h
-
ext/mbstring/tests/unicode_versions.phpt
-
ext/mbstring/unicode_data.h
|
|
@ -20,6 +20,9 @@ PHP NEWS |
|
|
|
. Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex). |
|
|
|
(Arnaud) |
|
|
|
|
|
|
|
- MBstring: |
|
|
|
. Updated Unicode data tables to Unicode 17.0. (Yuya Hamada) |
|
|
|
|
|
|
|
- URI: |
|
|
|
. Fixed bug GH-19780 (InvalidUrlException should check $errors argument). |
|
|
|
(nielsdos) |
|
|
|
|
|
@ -84,6 +84,9 @@ PHP 8.5 UPGRADE NOTES |
|
|
|
. ldap_get_option() and ldap_set_option() now throw a ValueError when |
|
|
|
passing an invalid option. |
|
|
|
|
|
|
|
- MBstring: |
|
|
|
. Unicode data tables have been updated to Unicode 17.0 |
|
|
|
|
|
|
|
- MySQLi: |
|
|
|
. Calling the mysqli constructor on an already-constructed object |
|
|
|
is now no longer possible and throws an Error. |
|
|
|
|
|
@ -80,10 +80,10 @@ static const struct { |
|
|
|
{ 0xff01, 0xff60 }, |
|
|
|
{ 0xffe0, 0xffe6 }, |
|
|
|
{ 0x16fe0, 0x16fe4 }, |
|
|
|
{ 0x16ff0, 0x16ff1 }, |
|
|
|
{ 0x17000, 0x187f7 }, |
|
|
|
{ 0x18800, 0x18cd5 }, |
|
|
|
{ 0x18cff, 0x18d08 }, |
|
|
|
{ 0x16ff0, 0x16ff6 }, |
|
|
|
{ 0x17000, 0x18cd5 }, |
|
|
|
{ 0x18cff, 0x18d1e }, |
|
|
|
{ 0x18d80, 0x18df2 }, |
|
|
|
{ 0x1aff0, 0x1aff3 }, |
|
|
|
{ 0x1aff5, 0x1affb }, |
|
|
|
{ 0x1affd, 0x1affe }, |
|
|
@ -125,7 +125,7 @@ static const struct { |
|
|
|
{ 0x1f680, 0x1f6c5 }, |
|
|
|
{ 0x1f6cc, 0x1f6cc }, |
|
|
|
{ 0x1f6d0, 0x1f6d2 }, |
|
|
|
{ 0x1f6d5, 0x1f6d7 }, |
|
|
|
{ 0x1f6d5, 0x1f6d8 }, |
|
|
|
{ 0x1f6dc, 0x1f6df }, |
|
|
|
{ 0x1f6eb, 0x1f6ec }, |
|
|
|
{ 0x1f6f4, 0x1f6fc }, |
|
|
@ -135,11 +135,12 @@ static const struct { |
|
|
|
{ 0x1f93c, 0x1f945 }, |
|
|
|
{ 0x1f947, 0x1f9ff }, |
|
|
|
{ 0x1fa70, 0x1fa7c }, |
|
|
|
{ 0x1fa80, 0x1fa89 }, |
|
|
|
{ 0x1fa8f, 0x1fac6 }, |
|
|
|
{ 0x1face, 0x1fadc }, |
|
|
|
{ 0x1fadf, 0x1fae9 }, |
|
|
|
{ 0x1faf0, 0x1faf8 }, |
|
|
|
{ 0x1fa80, 0x1fa8a }, |
|
|
|
{ 0x1fa8e, 0x1fac6 }, |
|
|
|
{ 0x1fac8, 0x1fac8 }, |
|
|
|
{ 0x1facd, 0x1fadc }, |
|
|
|
{ 0x1fadf, 0x1faea }, |
|
|
|
{ 0x1faef, 0x1faf8 }, |
|
|
|
{ 0x20000, 0x2fffd }, |
|
|
|
{ 0x30000, 0x3fffd }, |
|
|
|
}; |
|
|
@ -23,6 +23,9 @@ print "Emoji (\u{1F6DC}): " . mb_strwidth("\u{1F6DC}", 'UTF-8') . "\n"; |
|
|
|
// Changed in Unicode 16.0, U+2630...U+2637 are wide |
|
|
|
print "Emoji (\u{2630}): " . mb_strwidth("\u{2630}", 'UTF-8') . "\n"; |
|
|
|
|
|
|
|
// New in Unicode 17.0, width=2 |
|
|
|
print "Emoji (\u{1FAEA}): " . mb_strwidth("\u{1FAEA}", "UTF-8") . "\n"; |
|
|
|
|
|
|
|
echo "Char case changes:\n"; |
|
|
|
|
|
|
|
print "Upper(\u{019b}) = \u{a7dc} : "; |
|
|
@ -37,5 +40,6 @@ Sinhalese (අයේෂ්): 5 |
|
|
|
Emoji (🐘): 2 |
|
|
|
Emoji (🛜): 2 |
|
|
|
Emoji (☰): 2 |
|
|
|
Emoji (): 2 |
|
|
|
Char case changes: |
|
|
|
Upper(ƛ) = : bool(true) |