所以我正在开发一个系统,从网页上获取元标记,以获取从链接嵌入的视频的信息(如facebook所做的那样)。
我也获得了页面标题和描述以预填充某些字段。这里是我遇到问题的地方,描述工作正常,因为它是一个textarea,所以我可以使用.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);
如果我的标题带有任何重音或任何特殊字符,则会打印出é
等。
我尝试使用html_entity_decode
和htmlspecialchars_decode
我希望有人知道问题出在哪里。
感谢您的时间和美好的一天
里斯
答案 0 :(得分: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 ---
此论坛帖子可以提供帮助吗?
How to decode HTML entities using jQuery?
希望这会有所帮助!!