Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem med danske tegn og Ajax

1 view
Skip to first unread message

EnjoyNews

unread,
Mar 1, 2008, 3:55:16 AM3/1/08
to
Hej

Jeg har lavet et simpelt lille Java Ajax script hvor den skriver nogle ting
i en div når der klikkes på en knap.
Det virker også fint..

Jeg har 2 sprog på siden som føres over via url Lang=DA eller EN
Der hentes så 2 forskellige filer med php sådan her
IF($lang=='EN'){require("Language/EN.php");}
IF($lang=='DA'){require("Language/DA.php");}
hvor der eks. står $a51="forklaring på bla bla.." i den danske fil

Det virker også fint men...
Når jeg overfører dette til den fil der åbnes via java scriptet
og henter de samme sprog filer ind, kan jeg se at den henter den rigtige fil
som den skal, og den er også dansk hvis der trykkes dansk osv. men den
skriver ikke æøå ??
Det gør den alle andre steder på siden. Det er altså kun i den fil der åbnes
via java scriptet den er gal.
Der skriver den bare Forklaring P? bla bla...

Jeg har en
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
stående i toppen af hovedsiden og det som sagt også fint med de danske tegn.

Kan nogle komme med en forklaring og måske en løsning på problemet ?

mvh
Michael


Johan Holst Nielsen

unread,
Mar 1, 2008, 7:51:33 AM3/1/08
to
EnjoyNews wrote:
> Det virker også fint men...
> Når jeg overfører dette til den fil der åbnes via java scriptet
> og henter de samme sprog filer ind, kan jeg se at den henter den rigtige fil
> som den skal, og den er også dansk hvis der trykkes dansk osv. men den
> skriver ikke æøå ??
> Det gør den alle andre steder på siden. Det er altså kun i den fil der åbnes
> via java scriptet den er gal.
> Der skriver den bare Forklaring P? bla bla...
>
> Jeg har en
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
> stående i toppen af hovedsiden og det som sagt også fint med de danske tegn.
>
> Kan nogle komme med en forklaring og måske en løsning på problemet ?

Højst sandsynligt dit AJAX kald der tror data er i UTF-8 - hvorledes ser
dine ajax kald ud? Benytter du et framework af en art (prototype eller
lign?).

--
Johan Holst Nielsen
Freelance PHP Developer - http://phpgeek.dk

Stig Johansen @

unread,
Mar 1, 2008, 11:13:01 AM3/1/08
to
EnjoyNews wrote:

> Jeg har 2 sprog på siden som føres over via url Lang=DA eller EN
> Der hentes så 2 forskellige filer med php sådan her
> IF($lang=='EN'){require("Language/EN.php");}
> IF($lang=='DA'){require("Language/DA.php");}
> hvor der eks. står $a51="forklaring på bla bla.." i den danske fil

..


> fil som den skal, og den er også dansk hvis der trykkes dansk osv. men den
> skriver ikke æøå ??

..


> Kan nogle komme med en forklaring og måske en løsning på problemet ?

Ja, som Johan skriver, så bruger XMLHTTPRequest utf8 som tegnsæt.
(=forklaring)

I 'Language/DA.php', hvis det er dit php script, skal du bare levere data
som utf8 i stedet for ansi. (=løsning)

Til FF kan man godt levere det som iso88591 med en passende xml prolog
(text/xml), men det virker ikke i IE.

--
Med venlig hilsen
Stig Johansen

Philip Nunnegaard

unread,
Mar 1, 2008, 10:57:24 PM3/1/08
to
"EnjoyNews" <mh-ny...@mail.dk> skrev i meddelelsen
news:47c919ff$0$2097$edfa...@dtext02.news.tele.dk...

> Det virker også fint men...
> Når jeg overfører dette til den fil der åbnes via java scriptet
> og henter de samme sprog filer ind, kan jeg se at den henter den rigtige
> fil som den skal, og den er også dansk hvis der trykkes dansk osv. men den
> skriver ikke æøå ??

Du skal se på ajax-delen, som om det var en selvstændig side (næsten som de
gamle frames uden sammenligning i øvrigt).
Øverst i den fil, der laver ajax-delen af din side indsætter du dette:

<?php
header('Content-Type: text/html; charset=ISO-8859-1');

...og så ellers resten af din kode...
?>

Så skulle det gerne spille. Det var i hvert fald det, der skulle til hos
mig.

Philip Nunnegaard

unread,
Mar 1, 2008, 11:00:06 PM3/1/08
to
"Philip Nunnegaard" <phi...@fjerndettehitsurf.dk> skrev i meddelelsen
news:47ca25af$0$15892$edfa...@dtext01.news.tele.dk...

> Så skulle det gerne spille. Det var i hvert fald det, der skulle til hos
> mig.

Og jeg skal da lige tilføje, at det virker i alle de browsere, jeg har ved
hånden, herunder IE og Firefox.

Stig Johansen @

unread,
Mar 2, 2008, 1:57:59 AM3/2/08
to
Philip Nunnegaard wrote:

> <?php
> header('Content-Type: text/html; charset=ISO-8859-1');

Det måtte jeg lige prøve her, dog ASP.
Men det virker hverken med charset=ISO-8859-1 eller charset=iso88591 i min
FF 2.0.0.12.
Er du sikker på at dataene rent faktisk er iso99591 og ikke utf8 ?

Hvis jeg f.eks. konverterer data serverside til utf8, så virker det med en
flad "text/html"

Birger

unread,
Mar 2, 2008, 3:26:07 AM3/2/08
to
"Philip Nunnegaard" <phi...@fjerndettehitsurf.dk> skrev i en meddelelse
news:47ca25af$0$15892$edfa...@dtext01.news.tele.dk...

Jeg mener at XmlHTTPRequest kommunikerer utf-8.
Den rigtige måde må være at sætte headere for kommunikationen - ikke i data
der hentes.
Altså i headere for XMLHTTPRequest objectetet.

http://www.w3.org/TR/XMLHttpRequest/
AjaxObj.setRequestHeader( 'Accept-Charset', 'ISO-8859-1');


Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt, hurtigt og billigt. Daglig
opdatering.


Philip Nunnegaard

unread,
Mar 2, 2008, 11:21:19 AM3/2/08
to
"Stig Johansen" <stig_johansen_it_at_=(@)hotmail.com> skrev i meddelelsen
news:47ca508c$0$90273$1472...@news.sunsite.dk...

> Er du sikker på at dataene rent faktisk er iso99591 og ikke utf8 ?

Jævnfør Birgers svar, så er dataene i databasen UTF-8 (men dog iso8859-1 på
mit eget localhost), mens alt andet er iso8859-1. Problemet er så, at det i
kommunikationen bliver til UTF-8 uanset.
Jeg ved så ikke, hvorfor det virker hos mig og ikke hos dig. Sjovt nok
virker det hos mig, uanset om jeg er på localhost, hvor det hele er
iso8859-1, eller jeg er på selve siden ude på nettet, hvor MySQL er UTF-8.

Løsningen fra mit forrige indlæg fandt jeg i denne blog:
http://www.simon-jensen.net/AJAX-og-ae-oe-aa.html

Stig Johansen @

unread,
Mar 2, 2008, 2:16:28 PM3/2/08
to
Philip Nunnegaard wrote:

> Jeg ved så ikke, hvorfor det virker hos mig og ikke hos dig.

Næh, det forstår jeg heller ikke helt, men Herrens og Williams veje er
uransagelige.
Det har muligvis noget at gøre med at µBlød kører utf16, og ikke iso88591,
på Win2K+
Men så længe jeg har en løsning der virker på IIS'et, så er det ok med mig.

EnjoyNews

unread,
Mar 10, 2008, 4:07:16 AM3/10/08
to

"Philip Nunnegaard" <phi...@fjerndettehitsurf.dk> skrev i en meddelelse
news:47ca25af$0$15892$edfa...@dtext01.news.tele.dk...

Hej hej

Så er jeg tilbage og har læst jeres svar...
Umiddlebart ser det ud til at virke med header('Content-Type: text/html;
charset=ISO-8859-1'); indsat i den fil der skriver data'ene. Altså den fil
der hentes i req.open(.... i axajscriptet.

Så mange tak skal du have for tippet... Så kan jeg komme lidt videre :o)


0 new messages