[php-src] Issue #14359: mb_convert_encoding UTF16 to UTF8
| From: | MSchwenk-14 | Date: | Wed, 29 May 2024 14:31:00 +0000 |
| Subject: | [php-src] Issue #14359: mb_convert_encoding UTF16 to UTF8 | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-246977@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/14359
Author: MSchwenk-14
### Description
The following code:
$test =
hex2bin("fffe3c003f0078006d006c002000760065007200730069006f006e003d00220031002e0030002200200065006e0063006f00640069006e0067003d0022005500540046002d0031003600220020007300740061006e00640061006c006f006e0065003d0022006e006f0022003f003e000d000a");
echo ("#HEX-16: ".bin2hex($test));
echo ("#-HEX-8: ".bin2hex(mb_convert_encoding($test , 'UTF-8' ,
'UTF-16LE')));
Resulted in this output under php 8.0.30 or lower
#HEX-16:
fffe3c003f0078006d006c002000760065007200730069006f006e003d00220031002e0030002200200065006e0063006f00640069006e0067003d0022005500540046002d0031003600220020007300740061006e00640061006c006f006e0065003d0022006e006f0022003f003e000d000a
#-HEX-8:
efbbbf3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d313622207374616e64616c6f6e653d226e6f223f3e0d
That is right
If i use php 8.1. or higher
#HEX-16:
fffe3c003f0078006d006c002000760065007200730069006f006e003d00220031002e0030002200200065006e0063006f00640069006e0067003d0022005500540046002d0031003600220020007300740061006e00640061006c006f006e0065003d0022006e006f0022003f003e000d000a
#-HEX-8:
efbbbf3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d313622207374616e64616c6f6e653d226e6f223f3e0d3f
I get a 3f on the end of output.
That is an error.
The mistake stats with version 8.1.0
The same mistake comes on iconv
### PHP Version
PHP 8..0.30, to PHP 8.1.0
### Operating System
debian... also on PHP sandbox