Я передаю php-массив как
[sit_latitude] => 20° 23.298' N
внутри json_encode (); и выход подобен,
{"sit_latitude":null}
он отображает нуль, как это разрешить?
мой фрагмент кода
... $stmt->bindParam("id", $_GET[id]); $stmt->execute(); $employee = $stmt->fetchObject(); $dbh = null; echo '{"item":'. json_encode($employee) .'}';
что я пытался и добился успеха, было немного странно, но работало, поэтому позвольте мне поделиться им с вами.
$latitude = json_encode(utf8_encode($emplyoee['sit_latitude'])); $longitude = json_encode(utf8_encode($employee['sit_longitude'])); $emplyoee['sit_latitude'] = $latitude; $emplyoee['sit_longitude'] = $longitude;
и теперь проходят как
echo '{"item":'. json_encode($employee) .'}';
это решит вашу проблему
json_encode предполагает, что строки в своем вводе действительны UTF-8 (имейте в виду, что строки PHP представляют собой последовательности байтов, а не последовательности кодов Unicode). Если ваш текстовый редактор не настроен на использование этой кодировки (и вы не вручную сгенерировали UTF-8 с помощью шестнадцатеричных escape-кодов, таких как \xc2\xb0
в \xc2\xb0
с двумя \xc2\xb0
), строка будет закодирована как null
(потому что это недопустимо UTF-8).
Другие распространенные кодировки, такие как Windows-1252 , также являются надмножеством ASCII, так что это только проблема, если есть любые символы, отличные от ASCII (включая U + 00B0 DEGREE SIGN).
Даже если строка действительна UTF-8, по умолчанию json_encode выводит \u00b0
вместо фактического знака степени. Это не является проблемой для программного декодирования с использованием PHP json_decode или JavaScript JSON.parse , которые понимают шестнадцатеричные escape-последовательности JSON.
(В PHP 5.4 существует флаг JSON_UNESCAPED_UNICODE
чтобы предотвратить это экранирование. Однако на многих веб-серверах по-прежнему имеется PHP 5.3 или более JSON_UNESCAPED_UNICODE
, а флаг обездвиживает даже проблемные символы U + 2028 LINE SEPARATOR и U + 2029 PARAPRAPH SEPARATOR. для имитации флага в двух строках кода, хотя, как я объяснил выше, вам все равно не нужно.)
JSON и экранирующие персонажи – этот пост может вам помочь.
Просто пройти степень как \u00f8C
а затем декодировать его с помощью js.
Вы можете попробовать htmlspecialchars () функцию http://php.net/manual/en/function.htmlspecialchars.php