AJAX: Æ, ø og å driller.. På trods af at alt kører UTF-8
Heysa, efter utallige googlinger har jeg stadig et problem med æ, ø og å - de vises ikke korrekt. Jeg har rettet problemet, men vil høre om der findes andre løsninger.. Noget jeg har overset måske?Jeg henter vha. XMLHttpRequest() et navn på en by, fra en php fil, via POST. PHP filen der kaldes echo'er bare byens navn ud, og intet andet. Den måde jeg har løst problemet, er ved at køre byens navn igennem php's utf8_encode() funktion først - Men mon ikke jeg har overset noget fundamentalt andetsteds?
Jeg kører nyeste version af WAMP server til Windows (Apache + PHP).
Alle involverede filer på webserver er gemt som UTF-8.
Alle relevante steder er http meta content sat til: <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
MySQL databasen, og tabellen med byer/postnumre er sat til utf8_danish_ci og jeg har tripple-checket at selve by-navnene er pastet korrekt ind.
I .htaccess har jeg tilføjet 'AddCharset UTF-8 .php'.
I php.ini har jeg sat 'default_charset = "utf-8"'.
Og så 50 "bonus" point til den der kan finde fejlen i følgende kode, der gør, at det ikke virker i Internet Snotsplorer:
function get_city_from_zip(value,which) {
var http;
try { http = new ActiveXObject('Msxml2.XMLHTTP'); }
catch (e) {
try { http = new ActiveXObject('Microsoft.XMLHTTP'); }
catch (e2) {
try { http = new XMLHttpRequest(); }
catch (e3) { http = false; }
}
}
http.onreadystatechange = function() {
if(http.readyState == 4) {
if(http.status == 200) {
if (which == 1) document.next.city.value = http.responseText;
if (which == 2) document.next.other_city.value = http.responseText;
}else {
document.ajax.dyn='Error code ' + http.status;
}
}
};
if (value.length == 4) {
var params = 'zip='+value;
http.open('POST', 'zip_lookup/', true);
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
http.setRequestHeader('Content-length', params.length);
http.setRequestHeader('Connection', 'close');
http.send(params);
}
}
