json_decode \ u2019 - PullRequest
       10

json_decode \ u2019

2 голосов
/ 20 марта 2012

У меня есть JSON-файл, который я читаю через PHP и отражаю в файле HTML. В файле JSON есть эта строка: Lisa\u2019s husband

То, что \u2019 является «правой одинарной кавычкой» и должно быть выведено как таковое; вместо этого я получаю это: ’

Я пытался указать кодировку UTF-8 на моей HTML-странице , но это не решает проблему - просто делает ее другой.

без указания кодировки

’

Указание кодировки UTF-8 в файле HTML

�

Заголовки отправлено

Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive
Content-Length:3918
Content-Type:text/html
Date:Mon, 19 Mar 2012 21:21:04 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=15, max=500
MS-Author-Via:DAV
Pragma:no-cache
Server:Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.7l PHP/5.2.15
X-Powered-By:PHP/5.2.15

Что мне нужно сделать, чтобы мой апостроф выглядел правильно? Я не хочу заменять эти значения на '

Редактировать

Указание header('Content-Type: text/html; charset=utf-8'); изменило мои заголовки, но не устранило проблему.

1 Ответ

0 голосов
/ 18 октября 2013

- это Unicode или UTF-16.UTF-8 создает 8-битные комбинации символов, такие как \ x ## \ x ##.Вам нужно преобразовать строку из unicode в utf-8, прежде чем анализировать ее с помощью php json_decode.Наконец, после его декодирования вы должны преобразовать значения в их htmlentities, непосредственно вызвав функцию (т. Е. Если поле, которое вы хотите декодировать, - это автомобили в объекте гонок.

<?php

// Convert from unicode to utf-8

// json_decode

echo htmlentities(races.cars[1])

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...