Проблемы с кодированием в Firefox - PullRequest
0 голосов
/ 21 декабря 2011

У меня большие проблемы с кодированием в Firefox при использовании AJAX и jQuery. Я передаю строку с $.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.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2011

Вы можете попробовать с htmlspecialchars в PHP, вы можете использовать код ниже,

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;
}

в вашем коде Ajax

    success: function(retorno)
{
    $('#cartaz_comp').append(htmlspecialcharsDecode(retorno));
}
0 голосов
/ 21 декабря 2011

Попробуйте это:

$.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);
    }
...