ID: 44014
Updated by: [EMAIL PROTECTED]
Reported By: michael202 at gmx dot de
-Status: Assigned
+Status: Feedback
Bug Type: mbstring related
Operating System: Win XP
PHP Version: 5.2.5
Assigned To: hirokawa
New Comment:
BOM of Unicode is not supported by encoding conversion function
in mbstring.
And big endian is default in UTF-16. Please specify 'UTF-16LE'
if you need to specify little endian format.
Try,
<?php
$utf16 = chr(0).chr(0x4d).chr(0).chr(0x6f); //'Mo'
$utf8 = mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
echo($utf8 . "\n"); // -> Mo
?>
or
<?php
$utf16 = chr(0x4d).chr(0).chr(0x6f).chr(0); //'Mo'
$utf8 = mb_convert_encoding($utf16, 'UTF-8', 'UTF-16LE');
echo($utf8 . "\n"); // -> Mo
?>
Previous Comments:
------------------------------------------------------------------------
[2008-02-05 05:10:37] [EMAIL PROTECTED]
Assigned to the mbstring maintainer.
------------------------------------------------------------------------
[2008-02-01 12:08:07] michael202 at gmx dot de
Description:
------------
mb_convert_encoding 'destroys' first character when
converting from UTF16 to UTF8
(iconv works).
Reproduce code:
---------------
$utf16 = chr(0xFF).chr(0xFE).chr(0x4d).chr(0).chr(0x6f).chr(0); //'Mo'
$utf8 = mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
echo($utf8 . "\n"); // -> ´++´¢ìo
$utf8 = iconv('UTF-16', 'UTF-8', $utf16);
echo($utf8 . "\n"); // -> Mo
Expected result:
----------------
mb: (BOM8)Mo
iconv: Mo
(BOM8) is a placeholder
Actual result:
--------------
mb: (BOM8)´¢ìo (copied from cmd shell)
iconv: Mo
(BOM8) is a placeholder
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44014&edit=1