Я использую JSON.stringify()
для строения объектов JS для отправки AJAX на PHP.
Проблема возникает, когда функция JSON.stringify кодирует символы Unicode для форматирования \uxxxx
(например, \u000a
). Мой вопрос заключается в том, как преобразовать эти символы в обычные символы юникода в PHP?
См. Выход UTF-16? Немного застрял
Это преобразуется в UTF-8:
function unescape_utf16($string) { /* go for possible surrogate pairs first */ $string = preg_replace_callback( '/\\\\u(D[89ab][0-9a-f]{2})\\\\u(D[cf][0-9a-f]{2})/i', function ($matches) { $d = pack("H*", $matches[1].$matches[2]); return mb_convert_encoding($d, "UTF-8", "UTF-16BE"); }, $string); /* now the rest */ $string = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', function ($matches) { $d = pack("H*", $matches[1]); return mb_convert_encoding($d, "UTF-8", "UTF-16BE"); }, $string); return $string; }