【问题标题】:Parse JSON as UTF-8将 JSON 解析为 UTF-8
【发布时间】:2016-05-11 10:02:52
【问题描述】:

我正在使用以下代码从页面获取 JSON 并将其解析为我的 HTML 页面。 JSON 未以 UTF-8 显示,因此具有奇怪的字符。怎么去掉奇怪的字符?

$.get("test.php", function (data) {
    var JSON = jQuery.parseJSON(data);
    $.each(JSON.deals.items, function (index, value) {
        // My code
    });
});

【问题讨论】:

  • 您能发布一个 JSON 示例吗?
  • 这里有一个生成json的链接oxhey.wc.lt/test.php
  • 您指的是title 属性中的Unicode 字符吗?例如\u00c2\u00a314.99?如果是这样,this question 可能会有所帮助,但如果可能,最好更改服务器上的编码。
  • @RoryMcCrossan 那不可能
  • 我在php文件中使用file_get_contents

标签: javascript php jquery json utf-8


【解决方案1】:

请确保您流程的每一步都使用 UTF-8:

  • 数据库连接
  • 数据库表
  • 您的 PHP 文件
  • 您输出的内容类型标头

    header('Content-Type: application/json; charset=utf-8');

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

参考:PHP json_encode json_decode UTF-8

编辑:如果您的 JSON 提要中已经有像 \u00a3 这样的奇怪字符而不是 £ 符号,那么您的问题已经得到解答:https://stackoverflow.com/questions/1423846/convert-unicode-from-json-string-with-php

【讨论】:

  • 没有数据库。 php 文件具有内容类型标头
  • 好吧,假设您指的是数据中的奇怪字符和转义斜杠,您的 PHP 文件正在从某个地方获取它的数据,并且该数据已经不是 UTF-8... 所以您的问题在于这个 PHP 文件从哪里获取数据。
  • 对,但我无法改变。有没有办法删除之后的字符?
  • 您指的是像\u00a3 这样的奇怪字符,应该是£?如果有,请参考stackoverflow.com/questions/14523846/…。您的问题已经在那里被问过,并且也已经得到解决。我已经更新了我的答案,所以你可以选择它作为正确的答案。
猜你喜欢
  • 2018-11-17
  • 1970-01-01
  • 2015-07-22
  • 2018-02-07
  • 1970-01-01
  • 2016-04-01
  • 1970-01-01
  • 2012-11-07
  • 2015-12-10
相关资源
最近更新 更多