2011-12-21 20 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

+0

メインPHPファイルには、 メタがあります。 –

+0

@Renan_Lopes_Ferreira通常AJAXでアクセスされるAPIに直接アクセスしようとするとどうなりますか? – shinkou

答えて

0

、あなたは以下のコード、

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

ありがとう! は本当に私を助けました! –

0

これを試してください:あなたはPHPではhtmlspecialcharsを試すことができます

$.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" –

+0

サーバー側ファイルのエンコーディングとは何ですか? (同じでなければならない)。とにかく、UTF-8は良いお勧めです。 – yoda

+0

すべてがISO-8859-1にあります! 奇妙なことは、ブラウザがFirefoxであることを検出しても、utf8_decodeを使用してsrc = ""に渡すと文字列が間違っているということです。 –