2011-12-21 80 views
0

在使用AJAX和jQuery时,我在Firefox中编码时遇到了一些大问题。 我传递一个字符串$.ajax(),并在PHP代码我使用的功能:Firefox中的编码问题

header("Content-Type: text/html; charset=ISO-8859-1",true); 

的jQuery:

$.ajax({ 
    type: 'GET', 
    url: 'Filme_comparador_horarios.php', 
    data: 'cartaz='+$filme_compara, 
    success: function(retorno) 
    { 
     $('#cartaz_comp').append(retorno); 
    } 

PHP:

if(isset($_GET["cartaz"])) 
{ 
    $cartaz = $_GET["cartaz"];  
    echo" 
     <div class='cartaz_comp_img'><img class='cartaz_comp_imagem' src='horarios/$cartaz/filme.jpg' width='140px' height='210px'/> 
     <div class='nome_comp'>$cartaz</div> 
     </div> 
     "; 
} 

我已经尝试使用:

echo utf8_decode($cartaz); 

使它在Firefox中运行正常,但在IE和Chrome中破解。

+0

试着看看是否有任何HTML元标签改变字符集。例如' – shinkou 2011-12-21 02:09:23

+0

主要的php文件有meta 2011-12-21 02:23:51

+0

@Renan_Lopes_Ferreira如果您尝试直接访问通常通过AJAX访问的API,您会得到什么? – shinkou 2011-12-21 02:29:26

回答

0

您可以在PHP的htmlspecialchars尝试,你可以使用下面的代码,

echo htmlspecialchars(" 
    <div class='cartaz_comp_img'><img class='cartaz_comp_imagem' src='horarios/$cartaz/filme.jpg' width='140px' height='210px'/> 
    <div class='nome_comp'>$cartaz</div> 
    </div> 
    "); 

,并在你的Ajax页面创建这个JavaScript函数

function htmlspecialcharsDecode(specialChars) { 
    specialChars = specialChars.replace(/&/g, "&amp;") 
     .replace(/</g, "&lt;") 
    .replace(/>/g, "&gt;") 
    .replace(/"/g, "&quot;") 
    .replace(/'/g, "&#039;"); 

    return specialChars; 
} 

in your ajax code

success: function(retorno) 
{ 
    $('#cartaz_comp').append(htmlspecialcharsDecode(retorno)); 
} 
+0

谢谢! 真的帮了我! – 2012-02-01 15:14:04

0

试试这个:

$.ajax({ 
    type: 'GET', 
    url: 'Filme_comparador_horarios.php', 
    data: 'cartaz='+$filme_compara, 
    contentType: 'text/html;charset=ISO-8859-1', 
    success: function(retorno) 
    { 
     $('#cartaz_comp').append(retorno); 
    } 
+0

没有什么真的发生! 例如: 字符串“Redenção” 输出“Redenção” – 2011-12-21 02:20:28

+0

什么是服务器端文件的编码? (应该是相同的)。无论如何,UTF-8是一个很好的推荐做法。 – yoda 2011-12-21 02:21:54

+0

一切都在ISO-8859-1! 奇怪的是,即使当我检测到浏览器是Firefox,并且使用utf8_decode,传递到src =“”时,字符串仍然是错的 – 2011-12-21 02:38:00