Annotation of embedaddon/php/ext/mbstring/tests/bug54494.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #54494: mb_substr() mishandles UTF-32LE and UCS-2LE
        !             3: --SKIPIF--
        !             4: <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
        !             5: --FILE--
        !             6: <?php
        !             7: 
        !             8: //declare(encoding = 'UTF-8');
        !             9: mb_internal_encoding('UTF-8');
        !            10: 
        !            11: header('Content-Type: text/plain; charset=UTF-32LE');
        !            12: 
        !            13: $stringOr = "hällö wörld\n";
        !            14: 
        !            15: $mode = "UTF-32LE";
        !            16: 
        !            17: echo "$mode:\n";
        !            18: 
        !            19: $string = mb_convert_encoding($stringOr, $mode);
        !            20: $length = mb_strlen($string, $mode);
        !            21: echo "Length: ", $length, "\n";
        !            22: 
        !            23: 
        !            24: for ($i=0; $i < $length; $i++) {
        !            25:   $t = unpack("H*",mb_substr($string, $i, 1, $mode));
        !            26:   echo $t[1];
        !            27: }
        !            28: echo "\n";
        !            29: 
        !            30: 
        !            31: $mode = "UCS-2LE";
        !            32: 
        !            33: echo "$mode:\n";
        !            34: 
        !            35: $string = mb_convert_encoding($stringOr, $mode);
        !            36: $length = mb_strlen($string, $mode);
        !            37: echo "Length: ", $length, "\n";
        !            38: 
        !            39: 
        !            40: for ($i=0; $i < $length; $i++) {
        !            41:   $t = unpack("H*",mb_substr($string, $i, 1, $mode));
        !            42:   echo $t[1];
        !            43: }
        !            44: echo "\n";
        !            45: --EXPECT--
        !            46: UTF-32LE:
        !            47: Length: 12
        !            48: 68000000e40000006c0000006c000000f60000002000000077000000f6000000720000006c000000640000000a000000
        !            49: UCS-2LE:
        !            50: Length: 12
        !            51: 6800e4006c006c00f60020007700f60072006c0064000a00
        !            52: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>