2012-05-18 93 views
3

所以我正在研究一个系统,从网页获取元标记以获取从链接嵌入视频的信息(如Facebook)。Jquery Json输出特殊字符问题

我也得到页面的标题和描述来预先填写一些字段。这里是我有一个问题,说明正常工作,因为它是一个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); 

当我与任何口音或打印任何特殊字符的标题out &eacute;

我试过用html_entity_decodehtmlspecialchars_decode

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

感谢您的时间和日子过好

里斯

回答

1

你可以尝试使用一个Ajax请求检索数据,而不是在Ajax请求的getJSON您可以指定数据的字符编码要检索 这里是阿贾克斯的比较的getJSON

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

这里的Ajax是如何设置的

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

这种方法的说明是JSON请求不是异步所以在阿贾克斯集异步假

---编辑---

道歉设定的字符集可能只与jsonp一起使用是否可以使用它?

---编辑2 ---

本次论坛文章有帮助吗?

How to decode HTML entities using jQuery?

希望这有助于!

+0

非常感谢,我使用了你在第二次编辑中链接到的代码,它完美地工作。 谢谢你的时间 –