json_decode \ u2019

时间:2012-03-19 21:32:33

标签: php html encoding json

我有一个JSON文件,我正在通过PHP读取并回显到HTML文件。在JSON文件中有这个字符串:Lisa\u2019s husband

\u2019是一个“正确的单引号”,应该这样输出;相反,我明白了:’

我已经尝试了specifying a UTF-8 encoding on my HTML page,但它并没有解决问题 - 只是让它与众不同。

不指定编码

’

在HTML文件中指定UTF-8编码

�

已发送标头

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 :(得分:0)

\ u2019是unicode或UTF-16。 UTF-8创建8位字符组合,如\ x ## \ x ##。在使用php json_decode解析之前,您需要将字符串从unicode转换为utf-8。最后解码之后,你必须通过直接调用函数将值转换为它们的htmlentities(即,如果要解码的字段是races对象中的汽车。

<?php

// Convert from unicode to utf-8

// json_decode

echo htmlentities(races.cars[1])

?>