Avatar billede kentora Nybegynder
27. november 2010 - 17:27 Der er 14 kommentarer og
1 løsning

AJAX og PHP - Problemer med ÆØÅ

Jeg har lavet en opret form, der henter data fra en anden side. Æ, ø og å virker fint i Chrome og IE. Men i FF kommer returnerer den ingenting, på samme indtastninger som i Chrome og IE.

Jeg kalder min ajax side med et get parameter, og hvis jeg i FF bare tager siden, og sætter get variablen til det jeg før skrev i feltet, f.eks. Ø, konverterer den det til "%D8". Jeg har prøvet at lave en str_replace med denne værdi, tilbage til Ø, men det virker stadig ikke.

Nogen forslag?
Avatar billede Six Nybegynder
27. november 2010 - 18:38 #1
Prøv med utf8_encode() ?
Avatar billede kentora Nybegynder
27. november 2010 - 18:45 #2
Har prøvet utf8_encode. Det virker ikke. Kan heller ikke forestille mig det er det, da chrome og IE viser det rigtigt, derfor tror jeg problemet er at FF behandler specialtegn i URL's på en anden måde.. ?
Avatar billede jakobdo Ekspert
27. november 2010 - 20:52 #3
Den sider du "poster" dine get variabler fra, er den ISO eller UTF8? (character-encoding?)
Avatar billede majbom Novice
27. november 2010 - 21:03 #4
det er min erfaring, at AJAX kører bedst med UTF-8 over hele linjen.

mener heller ikke at xmlhttp objektet understøtter iso-8859-1
Avatar billede kentora Nybegynder
27. november 2010 - 21:43 #5
Har lige prøvet at sætte encode til UTF-8, hvilket resulterede i at ingenting virkede (mener også at have læst at AJAX ikke understøtter UTF-8?)

Begge sider kører pt. med iso-8859-1, og det virker i chrome og IE, men ikke i FF
Avatar billede jakobdo Ekspert
27. november 2010 - 21:57 #6
Du bør bestemt anvende UTF-8 hele vejen rundt...
Gør du det, så er jeg næsten sikker på din kode virker.
Avatar billede steen-h Mester
28. november 2010 - 07:17 #7
Jeg løste problemet ved at konvertere med følgende function inden at jeg gemte i databasen. Bruger selv FF

function dktegn($string) {
  $string = ereg_replace("æ", "æ", $string);
  $string = ereg_replace("ø", "ø", $string);
  $string = ereg_replace("å", "å", $string);
  $string = ereg_replace("Æ", "Æ", $string);
  $string = ereg_replace("Ø", "Ø", $string);
  $string = ereg_replace("Å", "Å", $string);
  return $string;
}
Avatar billede majbom Novice
28. november 2010 - 09:09 #8
-> #7 - det var da en irriterende løsning.

sørg for at alle filer, din database (inkl. forbindelse) kører UTF-8 - så spiller det!
Avatar billede kentora Nybegynder
28. november 2010 - 11:11 #9
Jeg bruger ikke nogen database, og jeg har prøvet at køre UTF-8 hele vejen rundt?
Avatar billede jakobdo Ekspert
28. november 2010 - 11:21 #10
Du har ikke brugt utf8 korrekt så.
Vis os din kode og jeg skal bevise du tager fejl.
Avatar billede kentora Nybegynder
28. november 2010 - 11:51 #11
#10 -> Jeg er lidt øm overfor at offentliggøre denne kode :)

Har fået det til at virke, satte charset til iso-8859-1, og så brugte jeg firebug til at fejlfinde, og så tilpassede jeg min backend lidt, så virkede det.. Smid svar, og få point hvem der vil :)

- Og glædelig første søndag i advent :)
Avatar billede majbom Novice
28. november 2010 - 20:12 #12
super du fik det til at spille!

jeg springer over - du fik det til at køre med iso-8859-1 :)
Avatar billede jakobdo Ekspert
28. november 2010 - 20:17 #13
Springer også over...
Jeg vil ikke have point for at lave en løsning baseret på iso. :o)
Avatar billede kentora Nybegynder
29. november 2010 - 10:59 #14
Hvis der ikke er nogle der vil have point, må jeg jo bare lukke.

P.S: Synes det er sjovt at der er så stor modstand mod iso, når det nu engang er international standard... :)
Avatar billede jakobdo Ekspert
29. november 2010 - 11:01 #15
ISO er en gammel standard.
UTF8 er fremtiden.
Prøv at håndter tegn, som ikke er i ASCII.
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