Dokument jest w iso-8859-2
Wczytuje ajaxem dane w ten sposob:
<? ?> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> </head> <? ?> <body> </body>
Funkcja odczytujaca dane
<?php { // Replace + with ' ' // Replace %xx with equivalent character // Put [ERROR] in output if %xx is invalid. var HEXCHARS = "0123456789ABCDEFabcdef"; var encoded = $tekst; var plaintext = ""; var i = 0; while (i < encoded.length) { var ch = encoded.charAt(i); if (ch == "+") { plaintext += " "; i++; } else if (ch == "%") { if (i < (encoded.length-2) && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) { i += 3; } else { plaintext += "%[ERROR]"; i++; } } else { plaintext += ch; i++; } } // while return plaintext; }; function wstawajax (adresurl) { advAJAX.get({ url: adresurl, onError : function(obj) { alert("Error: " + obj.status); } }); } ?>
I teraz funkcja javascript zamiast tworzyc mi 8859-2, tworzy mi zdaje sie utf-16 i na ekranie mam krzaczki
Normalne znaki sa jako ascii, a polskie znaki sa jako utf
Probowalem wszystkich znalezionych metod, ale nic to nie dalo
Podglad problemu:
http://www.jacob.impuls.webd.pl/
LINK: POCZTA UPOMINKOWA/TEST
Moznabybylo zrobic zeby zostalo tak ze: innerHTML = URLDecode(obj.responseText); },
a dac jakas akcje na warstwie ze przy zmianie zawartosci dekoduje php-owskim urldecode.
Tylko jakos nie wyobrazam sobie tego rozwiazania
Przed <head> mam:
<!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" xml:lang="en" lang="en">