2013-03-31 13 views
1
내가 다음 동일한 서버에있는 otherpage.html의 내용을 얻을하고 index.html 페이지에 $ 갔지()를 사용하고

AJAX는 IE에서 잘못된 문자 집합을 반환

을 할 노력하고있어 무엇

index.html 페이지의 DIV에 표시하십시오. 두 페이지 모두 스페인어, 프랑스어 및 독일어로 된 악센트 부호가있는 문자를 포함하며 iso-8859-1으로 인코딩됩니다.

두 페이지 모두 타사 'wysiwyg html 저작 도구'로 생성되므로 페이지 인코딩을 변경할 수 없으며 서버 설치 방법을 제어 할 수 없습니다. 내 JS 코드 만 추가 할 수 있습니다.

무엇이 잘못 되었나요?

모든 기능은 Chrome, Firefox, Safari 및 Opera에서 완벽하게 작동합니다. 그러나 IE10/9/8/7은 잘못된 텍스트를 반환합니다. 나는 빈 사각형을 얻는다 ` instead of ö , å and ä`. 나는 Stackoverflow (ISO-8859-1은 많은 두통을 유발하는 것 같다.)를 검색했고, 헤더에는 헤더 등에서 인코딩 강제에 대한 팁을 대부분 포함했다. (

좋아, 코드를 보여줘. !

내가 두 서버에 설치 테스트 케이스가 있습니다. test onetest two을 코드는 다음과 같습니다 :

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
<title>the first page</title> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" charset="iso-8859-1"> 
function GetData() { 

$.ajaxSetup({ 
    beforeSend: function(jqXHR) { 
      jqXHR.overrideMimeType('text/html; charset=iso-8859-1') 
      jqXHR.setRequestHeader('Accept','text/html; charset=iso-8859-1'); 
    }, 
    timeout:5000, 
    contentType: 'text/html; charset=iso-8859-1', 
    dataType: 'html', 
    mimeType: 'text/html; charset=iso-8859-1', 
    processData: false 
}) 

$.post('otherpage.html') 
.done(function(pagedata) { 
    console.log(pagedata) 
    $('#result').html(pagedata); 
}) 
.fail(function() { 
    $('#result').html('Request failed'); 
}) 

} 
</script> 
</head> 
<body> 
<input type="submit" value="Get data" onclick="GetData()"> 
<div id="intro">Some characters: ö--å--ä.</div> 
<div id="result">Click "Get data".</div> 
</body> 
</html> 

otherpage.html

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
<title>the other page</title> 
</head> 
<body> 
<div>Hälsyt högg lått Xöööööööööz Zååååååååååååy Kääääääääääännn </div> 
</body> 
</html> 

귀하의 질문은 ...?

JavaScript가 IE10/9/8/7에서 텍스트가 올바르게 표시되도록하려면 어떻게해야합니까? 나는 어떤 건설적인 아이디어에 감사드립니다.

답변

0

IE는 ISO-8859-1 인코딩을 수정합니다. ISO-8859-1과 같은 almost 인 ISO-8859-15 인코딩을 사용해보세요.

PS 나는 아직 실행하지 않은 그 문제가 해결되지 않으면 IE에 대한 콜백의 onsubmit 핸들러 = "ISO-8859-1"을 document.charset 설정하십시오 (다른 브라우저, <form accept-charset="ISO-8859-1"> 트릭을 할해야 제공된 코드.