bug69079.phpt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. --TEST--
  2. Bug #69079 (enhancement for mb_substitute_character)
  3. --EXTENSIONS--
  4. mbstring
  5. --FILE--
  6. <?php
  7. mb_internal_encoding('UTF-8');
  8. var_dump(mb_substitute_character(0x1F600));
  9. var_dump(bin2hex(mb_scrub("\xff")));
  10. mb_substitute_character(0x3f); // Reset to '?', as the next call will fail
  11. try {
  12. var_dump(mb_substitute_character(0xD800)); // Surrogate (illegal)
  13. } catch (\ValueError $e) {
  14. echo $e->getMessage() . \PHP_EOL;
  15. }
  16. var_dump(bin2hex(mb_scrub("\xff")));
  17. mb_internal_encoding('EUC-JP-2004');
  18. mb_substitute_character(0x63); // Reset to '?', as the next call will fail
  19. try {
  20. mb_substitute_character(0x8fa1ef); // EUC-JP-2004 encoding of U+50AA (illegal)
  21. } catch (\ValueError $e) {
  22. echo $e->getMessage() . \PHP_EOL;
  23. }
  24. var_dump(bin2hex(mb_scrub("\x8d")));
  25. mb_substitute_character(0x50aa);
  26. var_dump(bin2hex(mb_scrub("\x8d")));
  27. ?>
  28. --EXPECT--
  29. bool(true)
  30. string(8) "f09f9880"
  31. mb_substitute_character(): Argument #1 ($substitute_character) is not a valid codepoint
  32. string(2) "3f"
  33. mb_substitute_character(): Argument #1 ($substitute_character) is not a valid codepoint
  34. string(2) "63"
  35. string(6) "8fa1ef"