json_encode_invalid_utf8.phpt 766 B

12345678910111213141516171819202122232425262728293031
  1. --TEST--
  2. json_encode() invalid UTF8
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded("json")) print "skip";
  6. ?>
  7. --FILE--
  8. <?php
  9. function json_encode_invalid_utf8($str) {
  10. var_dump(json_encode($str));
  11. var_dump(json_encode($str, JSON_INVALID_UTF8_IGNORE));
  12. var_dump(json_encode($str, JSON_INVALID_UTF8_SUBSTITUTE));
  13. var_dump(json_encode($str, JSON_UNESCAPED_UNICODE));
  14. var_dump(bin2hex(json_encode($str, JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_SUBSTITUTE)));
  15. }
  16. json_encode_invalid_utf8("\x61\xb0\x62");
  17. json_encode_invalid_utf8("\x61\xf0\x80\x80\x41");
  18. echo "Done\n";
  19. ?>
  20. --EXPECT--
  21. bool(false)
  22. string(4) ""ab""
  23. string(10) ""a\ufffdb""
  24. bool(false)
  25. string(14) "2261efbfbd6222"
  26. bool(false)
  27. string(4) ""aA""
  28. string(10) ""a\ufffdA""
  29. bool(false)
  30. string(14) "2261efbfbd4122"
  31. Done