[php-src] Issue #12556: Wrong length of surrogate Unicode codepoints
| From: | mlocati | 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