2012-05-18 97 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

非常感謝,我使用了你在第二次編輯中鏈接到的代碼,它完美地工作。 謝謝你的時間 –