[php-src] Issue #12556: Wrong length of surrogate Unicode codepoints

From: Date: Sun, 29 Oct 2023 17:22:02 +0000
Subject: [php-src] Issue #12556: Wrong length of surrogate Unicode codepoints
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-245675@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/12556 Author: mlocati ### Description The following code: ```php <?php echo 'SUN BEHIND CLOUD: ', mb_strlen("\u{26C5}"), "\n"; echo 'Non Private Use High Surrogate, First: ', mb_strlen("\u{D800}"), "\n"; echo 'Non Private Use High Surrogate, Last: ', mb_strlen("\u{DB7F}"), "\n"; echo 'Private Use High Surrogate, First: ', mb_strlen("\u{DB80}"), "\n"; echo 'Private Use High Surrogate, Last: ', mb_strlen("\u{DBFF}"), "\n"; echo 'Low Surrogate, First: ', mb_strlen("\u{DC00}"), "\n"; echo 'Low Surrogate, Last: ', mb_strlen("\u{DFFF}"), "\n"; ``` In PHP 8.1 & 8.2 we have: ``` SUN BEHIND CLOUD: 1 Non Private Use High Surrogate, First: 1 Non Private Use High Surrogate, Last: 1 Private Use High Surrogate, First: 1 Private Use High Surrogate, Last: 1 Low Surrogate, First: 1 Low Surrogate, Last: 1 ``` In PHP 8.3 we instead have: ``` SUN BEHIND CLOUD: 1 Non Private Use High Surrogate, First: 3 Non Private Use High Surrogate, Last: 3 Private Use High Surrogate, First: 3 Private Use High Surrogate, Last: 3 Low Surrogate, First: 3 Low Surrogate, Last: 3 ``` ### PHP Version 8.3.0-dev (81e236cde56ff006d9c661140790b42f40ffc43b) ### Operating System Ubuntu 22.04.3

« previous php.bugs (#245675) next »