使用AJAX和jQuery时,我在Firefox中进行编码时遇到了一些大问题。
我传递了一个带$.ajax()
的字符串,在php代码中我正在使用函数:
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 :(得分: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);
}
答案 1 :(得分: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, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
return specialChars;
}
你的ajax代码中的
success: function(retorno)
{
$('#cartaz_comp').append(htmlspecialcharsDecode(retorno));
}