Guest User

Untitled

a guest
Nov 15th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. function unescape($str)
  2. {
  3. $ret = '';
  4. $len = strlen($str);
  5. for ($i = 0; $i < $len; $i ++)
  6. {
  7. if ($str[$i] == '%' && $str[$i + 1] == 'u')
  8. {
  9. $val = hexdec(substr($str, $i + 2, 4));
  10. if ($val < 0x7f)
  11. $ret .= chr($val);
  12. else
  13. if ($val < 0x800)
  14. $ret .= chr(0xc0 | ($val >> 6)) .
  15. chr(0x80 | ($val & 0x3f));
  16. else
  17. $ret .= chr(0xe0 | ($val >> 12)) .
  18. chr(0x80 | (($val >> 6) & 0x3f)) .
  19. chr(0x80 | ($val & 0x3f));
  20. $i += 5;
  21. } else
  22. if ($str[$i] == '%')
  23. {
  24. $ret .= urldecode(substr($str, $i, 3));
  25. $i += 2;
  26. } else
  27. $ret .= $str[$i];
  28. }
  29. return $ret;
  30. }
  31.  
  32. echo unescape('A%u7ec4'). PHP_EOL;
  33.  
  34. function replace_unicode_escape_sequence($match) {
  35. return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
  36. }
  37. function unicode_decode($str) {
  38. return preg_replace_callback('/[\\\\|%]u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $str);
  39. }
  40. echo unicode_decode('A%u7ec4') . PHP_EOL;
  41. echo unicode_decode('A\u7ec4') . PHP_EOL;
  42.  
  43. echo unicode_decode(utf8_decode('A\u7ec4'));
Add Comment
Please, Sign In to add comment