/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Problem med danske tegn og Ajax
Fra : EnjoyNews


Dato : 01-03-08 09:55

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 (01-03-2008)
Kommentar
Fra : Johan Holst Nielsen


Dato : 01-03-08 13:52

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 (01-03-2008)
Kommentar
Fra : Stig Johansen


Dato : 01-03-08 17:13

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 (02-03-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 02-03-08 04:57

"EnjoyNews" <mh-nyheder@mail.dk> skrev i meddelelsen
news:47c919ff$0$2097$edfadb0f@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 (02-03-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 02-03-08 05:00

"Philip Nunnegaard" <philip@fjerndettehitsurf.dk> skrev i meddelelsen
news:47ca25af$0$15892$edfadb0f@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 (02-03-2008)
Kommentar
Fra : Stig Johansen


Dato : 02-03-08 07:58

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"

--
Med venlig hilsen
Stig Johansen

Philip Nunnegaard (02-03-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 02-03-08 17:21

"Stig Johansen" <stig_johansen_it_at_=(@)hotmail.com> skrev i meddelelsen
news:47ca508c$0$90273$14726298@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 (02-03-2008)
Kommentar
Fra : Stig Johansen


Dato : 02-03-08 20:16

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.

--
Med venlig hilsen
Stig Johansen

Birger (02-03-2008)
Kommentar
Fra : Birger


Dato : 02-03-08 09:26

"Philip Nunnegaard" <philip@fjerndettehitsurf.dk> skrev i en meddelelse
news:47ca25af$0$15892$edfadb0f@dtext01.news.tele.dk...
> "EnjoyNews" <mh-nyheder@mail.dk> skrev i meddelelsen
> news:47c919ff$0$2097$edfadb0f@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.

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.



EnjoyNews (10-03-2008)
Kommentar
Fra : EnjoyNews


Dato : 10-03-08 09:07


"Philip Nunnegaard" <philip@fjerndettehitsurf.dk> skrev i en meddelelse
news:47ca25af$0$15892$edfadb0f@dtext01.news.tele.dk...
> "EnjoyNews" <mh-nyheder@mail.dk> skrev i meddelelsen
> news:47c919ff$0$2097$edfadb0f@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.

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



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste