json_decode是什么意思?

3
我有一个JSON文件,通过PHP读取并输出到HTML文件中。在JSON文件中有这个字符串:Lisa\u2019s husband
那个\u2019是一个“右单引号”,应该输出为这样;但是我得到的是这个:’
我尝试过在我的HTML页面上指定UTF-8编码,但它并没有解决问题 - 它只是让问题变得不同了。 未指定编码 ’ 在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');更改了我的头文件,但并没有解决问题。


4
你尝试过实体命名了吗?’ - undefined
3
根据此页面的说明,\u2019C/C++/Java 源代码所用的字符。浏览器只能解释 HTML 代码中的 ’’ - undefined
1
@ PetrMarek 我可以这样做,但是我需要将所有可能的代码替换为它们相应的实体代码。 - undefined
@Sparky672 此外,更相关的是,\uHHHH 转义语法也内置在 JavaScript 字符串字面量中。(这意味着,如果通过 Ajax 检索并使用 JavaScript 解析该 JSON 字符串,它将起作用...) - undefined
对我来说运行得很好:http://3v4l.org/4tcqD 在某个地方处理编码不正确,json_decode没问题。也许你的某个地方有一些随机的utf8_encode - undefined
显示剩余5条评论
1个回答

1
"

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

"
<?php

// Convert from unicode to utf-8

// json_decode

echo htmlentities(races.cars[1])

?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接