Avatar billede tblaster Nybegynder
11. februar 2006 - 22:15 Der er 14 kommentarer og
1 løsning

Problem med XMLHttpRequest og danske special tegn

Hejsa

Jeg bruger nedenstående funktion til at hente data fra en xml fil, igennem en javascript funktion. Dette går sådan set fint nok, bortset fra at alle specialtegn som æ ø å bliver fortolket forkert, således at de bliver udskrevet som underlige tegn. "Størrelse" bliver eksempelvis lavet om til "St?se". Hvis jeg åbner min xml fil i browseren, så er der ingen problemer.

Min xml fil har følgende defineret i toppen:
<?xml version='1.0' encoding='ISO-8859-1'?>

Og min javascript funktioner er som følgende:
function loadXMLDoc(url)
{
    // code for Mozilla, etc.
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
        xmlhttp.onreadystatechange=state_Change;
        xmlhttp.open("GET",url,true);
        xmlhttp.send(null);
    }
    //code for IE
    else if (window.ActiveXObject)
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        if (xmlhttp)
        {
            xmlhttp.onreadystatechange=state_Change;
            xmlhttp.open("GET",url,true);
            xmlhttp.send();
        }
    }
}
function state_Change()
{
    // if xmlhttp shows "loaded"
    if (xmlhttp.readyState==4)
    {
        if (xmlhttp.status==200)
        {
            document.getElementById('teksten').innerHTML=xmlhttp.responseText;
        }
    }
}

Hvad skal jeg gøre for at få specialtegne impoteret over i javascriptet rigtigt?
Avatar billede horsmark Nybegynder
12. februar 2006 - 06:23 #1
Hmm jeg har bygget nedenstående klasse og for at få æøå til at spille dengang jeg lavede det escaper jeg æøå i xml filen der dynamisk bygges til &aelig; osv

http://i.c.dk/global/js/Metaform/class.httprequest.js
Avatar billede horsmark Nybegynder
12. februar 2006 - 06:34 #2
### snak om xmlhttp start ###
ovenstående eksempel kan næsten ikke være mere simpelt at bruge a la nednestående:

var oHttp = new HttpRequest()
oHttp.onLoad = insertResponseText
oHttp.load('url_til_min_xml_fil.xml')

function insertResponseText(){
document.getElementById('teksten').innerHTML= oHttp.getResponseText();
}

### snak om xmlhttp slut###
Avatar billede tblaster Nybegynder
12. februar 2006 - 10:02 #3
Er der ikke andre måder at gøre det på end at lave dem om til &aelig osv?
Avatar billede horsmark Nybegynder
12. februar 2006 - 11:14 #4
næh kender ikke løsningen umiddelbart men lytter med og håber der er en med en løsning...
Avatar billede horsmark Nybegynder
12. februar 2006 - 11:26 #5
btw det er et browserproblem... jeg har lige testet imod mozilla og dér virker æøå men ikke i IE 6 :-(
Avatar billede horsmark Nybegynder
12. februar 2006 - 11:32 #6
Avatar billede horsmark Nybegynder
12. februar 2006 - 11:42 #7
Her er der en beskrivelse af hvad der er galt:
http://www.kandu.dk/Unet164167.aspx
Avatar billede horsmark Nybegynder
12. februar 2006 - 11:48 #8
OG hermed løsningen :-)

Hvis du gemmer din xml fil som unicode og uploader den virker det både i IE og mozilla :-)

POC -> horsmark.com/test.htm
Avatar billede tblaster Nybegynder
12. februar 2006 - 11:51 #9
Jeg danner dog bare min xml fil fra en asp side, og den bliver derfor ikke gemt.
Avatar billede horsmark Nybegynder
12. februar 2006 - 12:03 #10
hmm hvordan ser den xml fil ud (output) der skal genereres ?
Avatar billede horsmark Nybegynder
12. februar 2006 - 12:10 #11
hvad så med denne ? http://horsmark.com/test.htm
Avatar billede horsmark Nybegynder
12. februar 2006 - 12:11 #12
Der generer jeg også output dynamisk og det virker både i IE og firefox...

min outputfil ####
<?
header('Content-Type: text/html;charset=iso-8859-1');
?>
hej <br>

<? for( $i=0;$i<50;$i++){
    print "Dette er dynamisk linie ÆØÅ æøå nummer ".$i."<br>";
}?>
Avatar billede horsmark Nybegynder
12. februar 2006 - 12:12 #13
læg mærke til at jeg nu har droppet xml tingen kan fornemme at du egentligt ikke vil have et xml doc returneret men blot tekst... :-)
Avatar billede tblaster Nybegynder
25. februar 2006 - 11:40 #14
Takker. Smid et svar!
Avatar billede horsmark Nybegynder
25. februar 2006 - 11:52 #15
svar *s*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester