2011-12-21 3 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 fille에는 메타가 입니다.

+0

@Renan_Lopes_Ferreira 일반적으로 AJAX로 액세스되는 API에 직접 액세스하려고하면 어떻게됩니까? – shinkou

답변

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> 
    "); 

와 아약스 페이지에서

이를 만들 자바 스크립트 함수

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

    return specialChars; 
} 

, 아약스 코드

success: function(retorno) 
{ 
    $('#cartaz_comp').append(htmlspecialcharsDecode(retorno)); 
} 
+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); 
    } 
+0

아무 것도 정말로 일어나지 않습니다! 예 : 문자열 "Redenção" 출력 "Redenção" –

+0

서버 측 파일의 인코딩은 무엇입니까? (동일해야 함). 어쨌든, UTF-8은 좋은 연습입니다. – yoda

+0

모든 것이 ISO-8859-1에 있습니다! 이상한 점은 브라우저가 Firefox이고 utf8_decode를 사용하여 src = ""로 전달할 때 문자열이 여전히 틀리다는 것입니다. –