bug61537.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. --TEST--
  2. Bug #61537 (json_encode() incorrectly truncates/discards information)
  3. --SKIPIF--
  4. <?php if (!extension_loaded("json")) print "skip"; ?>
  5. --FILE--
  6. <?php
  7. $invalid_utf8 = "\x9f";
  8. var_dump(json_encode($invalid_utf8));
  9. var_dump(json_last_error(), json_last_error_msg());
  10. var_dump(json_encode($invalid_utf8, JSON_PARTIAL_OUTPUT_ON_ERROR));
  11. var_dump(json_last_error(), json_last_error_msg());
  12. echo "\n";
  13. $invalid_utf8 = "an invalid sequen\xce in the middle of a string";
  14. var_dump(json_encode($invalid_utf8));
  15. var_dump(json_last_error(), json_last_error_msg());
  16. var_dump(json_encode($invalid_utf8, JSON_PARTIAL_OUTPUT_ON_ERROR));
  17. var_dump(json_last_error(), json_last_error_msg());
  18. ?>
  19. --EXPECTF--
  20. bool(false)
  21. int(5)
  22. string(56) "Malformed UTF-8 characters, possibly incorrectly encoded"
  23. string(4) "null"
  24. int(5)
  25. string(56) "Malformed UTF-8 characters, possibly incorrectly encoded"
  26. bool(false)
  27. int(5)
  28. string(56) "Malformed UTF-8 characters, possibly incorrectly encoded"
  29. string(4) "null"
  30. int(5)
  31. string(56) "Malformed UTF-8 characters, possibly incorrectly encoded"