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>