bug65045.phpt 850 B

1234567891011121314151617181920212223242526272829
  1. --TEST--
  2. Bug #65045: mb_convert_encoding breaks well-formed character
  3. --EXTENSIONS--
  4. mbstring
  5. --FILE--
  6. <?php
  7. //declare(encoding = 'UTF-8');
  8. mb_internal_encoding('UTF-8');
  9. $str = "\xF0\xA4\xAD". "\xF0\xA4\xAD\xA2"."\xF0\xA4\xAD\xA2";
  10. $expected = "\xEF\xBF\xBD"."\xF0\xA4\xAD\xA2"."\xF0\xA4\xAD\xA2";
  11. $str2 = "\xF0\xA4\xAD\xA2"."\xF0\xA4\xAD\xA2"."\xF0\xA4\xAD";
  12. $expected2 = "\xF0\xA4\xAD\xA2"."\xF0\xA4\xAD\xA2"."\xEF\xBF\xBD";
  13. mb_substitute_character(0xFFFD);
  14. var_dump(
  15. $expected === htmlspecialchars_decode(htmlspecialchars($str, ENT_SUBSTITUTE, 'UTF-8')),
  16. $expected2 === htmlspecialchars_decode(htmlspecialchars($str2, ENT_SUBSTITUTE, 'UTF-8')),
  17. $expected === mb_convert_encoding($str, 'UTF-8', 'UTF-8'),
  18. $expected2 === mb_convert_encoding($str2, 'UTF-8', 'UTF-8')
  19. );
  20. ?>
  21. --EXPECT--
  22. bool(true)
  23. bool(true)
  24. bool(true)
  25. bool(true)