[ajax]pobieranie strony

0

mam skrypt w ajaxie ktory pobiera strone i wyswietla ją w textarea i wszystko byloby ok gdyby nie to ze zamiast polskich znakow wyswietlaja sie znaki zapytania

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
<script type="text/javascript">
function makeRequest() {
    url = 'test.html';
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); }
    http_request.onreadystatechange = function() { alertContents(http_request); };
    http_request.open('GET', url, true);
    http_request.send(null);
}

function alertContents(http_request) {
if (http_request.readyState < 4) {
document.getElementById('tresc').innerHTML = 'Pobieranie';
}
if (http_request.readyState == 4)
document.getElementById('tresc').innerHTML = unescape(http_request.responseText);
}
</script>
</head>
<body>
<input type="button" onclick="makeRequest();" value="click">
<textarea id="tresc" rows="8" cols="80"></textarea>
</body>
</html>

co jest nie tak z tym skrpytem?

0

dodałem do dokomunetu takie nagłówki

<?xml version="1.0" encoding="ISO-8859-2"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">

i część polskich znakow wyswietla prawidlowo, a drugą czesc nadal nie ;/

0

Strona ściągana via XMLHttpRequest powinna mieć kodowanie UTF-8 i z takim będzie interpretowana o ile dobrze kojarzę. Bo jest traktowana jako dokument XML, a dla niego domyślnym kodowaniem jest UTF-8 właśnie. Wydaje mi się, że w przypadku innych trzeba by albo przekodowywać po stronie klienta, albo zrobić aby nasz ściagany przez AJAX dokument XML miał zadeklarowane kodowanie jak trzeba.

Najłatwiej to zrobić, aby strona, którą ściągasz przez xmlhttprequest była wysyłana przez serwer z nagłówkiem Content-type: text/xml;charset=iso-8859-2 (o ile jest to dokument XML), ale być może można też by spróbować to wpisać do overridemimetype.

Albo po prostu zrezygnuj z latin2 na rzecz utf, nie będzie problemu.

0

[quote]
Najłatwiej to zrobić, aby strona, którą ściągasz przez xmlhttprequest była wysyłana przez serwer z nagłówkiem Content-type: text/xml;charset=iso-8859-2
[/quote]
pomogło, wielkie dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0