Edit report at http://bugs.php.net/bug.php?id=54494&edit=1

 ID:                 54494
 Updated by:         cataphr...@php.net
 Reported by:        rodney dot rehm at medialize dot de
 Summary:            mb_substr() fails on "UTF-32LE"
-Status:             Open
+Status:             Closed
 Type:               Bug
 Package:            mbstring related
 Operating System:   Mac OS X 10.6.7 / Windows 2003
 PHP Version:        5.3.6
-Assigned To:        
+Assigned To:        cataphract
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2011-04-09 18:59:38] cataphr...@php.net

Automatic comment from SVN on behalf of cataphract
Revision: http://svn.php.net/viewvc/?view=revision&revision=310108
Log: - Fixed bug #54494: mb_substr() mishandles UTF-32LE and UCS-2LE.

------------------------------------------------------------------------
[2011-04-08 17:05:56] rodney dot rehm at medialize dot de

Description:
------------
Iterating the characters of a UTF-32LE encoded string by using
mb_substr() fails. Same string UTF-32BE encoded works as expected. 

Test script:
---------------
<?php



declare(encoding = 'UTF-8');

mb_internal_encoding('UTF-8');



header('Content-Type: text/plain; charset=UTF-32LE');



$string = "hällö wörld\n";

$string = mb_convert_encoding($string, "UTF-32LE");

$length = mb_strlen($string, "UTF-32LE");

echo mb_convert_encoding("Length: ". $length ."\n", "UTF-32LE");



echo $string;



for ($i=0; $i < $length; $i++) {

  echo mb_substr($string, $i, 1, "UTF-32LE");

}



?>

Expected result:
----------------
Length: 12

hällö wörld

hällö wörld

Actual result:
--------------
Length: 12

hällö wörld

häl


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=54494&edit=1

Reply via email to