3

所以我正在开发一个系统来从网页获取元标记,以获取从链接嵌入的视频的信息(就像 facebook 一样)。

我还得到了页面的标题和描述来预填一些字段。这是我遇到问题的地方,描述工作正常,因为它是一个文本区域,所以我可以使用.html(),但标题是一个输入,所以我可以使用.attr().val()问题来自特殊字符,如 (é à è ö ä ü) .

这是我正在使用的代码。

这是我的 Jquery 动作脚本:

<script type="text/javascript" charset="utf-8">     
$(function(){
    $("#url").bind("change", function(){
        var url = $("#url").val();
        $.getJSON("/ajax/embed_video.php", { url: url }, function(json) {
            $(json.embed).appendTo("#feeds");
            $("#title").attr("value", json.title);
            $("#description").html(json.description);
         });
    });
});
</script>

这是我用于导出 JSON 数据的 php 文件:

$url = $_GET['url'];
$result = getUrlData($url); //this get the metadata from the url
$description = $result['metaTags']['og:description']['value'];
$title = $result['metaTags']['og:title']['value'];

$img_name = basename($result['metaTags']['og:image']['value']);
copy(''.$result['metaTags']['og:image']['value'].'', "../".$path_video_temp.$img_name);

$embed = " "; //EMBED CODE

$data = array('title' => $title,'description' => $description, 'embed' => $embed, 'img' => '/'.$path_video_temp.$img_name);

header('Content-Type: application/json; Charset=UTF-8');
echo json_encode($data);

当我的标题带有任何重音或任何特殊字符时,它会打印出来&eacute;等。

我尝试使用html_entity_decodehtmlspecialchars_decode

我希望有人知道问题出在哪里。

感谢您的宝贵时间,祝您有美好的一天

乔里斯

4

1 回答 1

1

您可以尝试使用 Ajax 请求来检索您的数据,而不是在 Ajax 请求中使用 getjson 您可以指定要检索的数据的字符编码 这是 Ajax 和 getjson 的比较

http://api.jquery.com/jQuery.getJSON/

以下是 Ajax 的设置方式

http://api.jquery.com/jQuery.ajax/

关于此方法的注意事项是 json 请求不是异步的,因此在 Ajax 中将 async 设置为 false

- -编辑 - -

抱歉,设置字符集只能与 jsonp 一起使用,您可以改用它吗?

---编辑2 ---

这个论坛帖子有帮助吗?

如何使用 jQuery 解码 HTML 实体?

希望这可以帮助 !!

于 2012-05-18T00:56:46.157 回答