2012-03-19 3 views
2

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

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

Я пробовал specifying a UTF-8 encoding on my HTML page, но это не исправить проблему - это просто отличает ее.

без указания, кодирующим

’

Указание кодировки 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'); изменил мои заголовки, но не решить проблему.

+4

Вы пробовали именованный объект? '’' – mreq

+3

Согласно [этой странице] (http://www.fileformat.info/info/unicode/char/2019/index.htm), '\ u2019' является' C/C++/исходным кодом Java'. Браузеры интерпретируют только HTML код, который является '& # x2019;' или '’'. – Sparky

+1

@PetrMarek Я мог бы, но тогда мне нужно было бы сделать замену на всех возможных кодах, подобных этому, с их ассоциированным кодом сущности. –

ответ

0

\ u2019 является юникодом или 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]) 

?> 
Смежные вопросы