Annotation of embedaddon/php/ext/mbstring/tests/bug54494.phpt, revision 1.1.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>