06. maj 2008 - 16:21Der er
17 kommentarer og 1 løsning
problemer med danske tegn i ajax-script
hej experter
til en forandring er jeg ved at få grå hår :S
jeg sidder med noget javascript/ajax/php/html som bare ikke vil som jeg vil.
problemer er at når jeg sender æøåé osv vha ajax til en php-side, kommer der mærkelige tegn, selvom jeg alle steder har sat charset til iso-8859-1. jeg har så prøvet at sætte charset til utf-8 (hvilket jeg ikke regnede med gjorde det bedre) og så virker det sq!
det er jo egentlig godt nok, men når jeg så henter data fra en php-fil vha ajax, så er der problemer :S
så det er lidt ligesom at vælge mellem pest eller kolera...
hvad gør jeg lige for at få afhjælpet dette "lille" problem?
jeg har søgt og søgt, men synes ikke at kunne finde andet end en løsning der kun virker "den ene vej"...
Du kan sagtens bruge iso-8859-1, men det er ikke altid nok at sætte det i meta-tags. Hvis du f.eks. åbner siderne i notesblok og vælger "Gem som" kan du vælge "Encoding", som skal stå på "ANSI" hvis ISO og på "UTF" hvis UTF.
Der er for tiden rigtig mange, som har præcis det samme problem som du, og løsningen er altid den samme. :)
hmm alle felterne i min database (som er tekst) var sat til latin1_swedish (?) jeg har ændret det til dansk, ved ikke om det gør en forskel, men nu prøver jeg lige.
mht filerne, jeg bruger editplus' indbyggede ftp, så jeg gemmer ikkemine filer på min maskine, andet end backup-funktionen der gør det for mig... så jeg vælger ikke tegnsæt når jeg gemmer, men hvis jeg har en fil åben og vælger gem som, står den automatisk til ANSI, så mon ikke det er det de er gemt som?
nu har jeg prøvet at gemme de 3 dokumenter på min computer encoded som ANSI og derefter uploade dem med filezilla, jeg har sat alle tekstfelter i min db til latin1_danish_ci og i alle 3 dokumenter står der ISO-8859-1...
Der er adskillige (og der kommer flere og flere) JavaScript libraries, som ikke kan håndtere iso-8859-1. JavaScript overgik til utf-8 i version 1.4 - og det har naturligvis væsentlig betydning for Ajax, hvor variabler jo hele tiden encodes. Brug utf-8 i stedet ;o)
nå jeg har kogt det lidt ned inden jeg ændrer alle mine dokumenter osv.
nu har jeg en htm-fil og en php-fil, det hele er gemt som UTF og er sat til charset UTF-8 i selve dokumenterne, og det virker egentlig efter hensigten, med æøå osv.
det siden gør er at men skriver noget i et textarea, trykker på en knap som vha ajax smidder indholdet af textarea'et i en session-variabel, når jeg så reloader siden (manuelt) skal den skrive indholdet i en div. og det virker som sagt som det skal, men hvis jeg sætter tinymce på mit textarea virker det ikke...
jeg har fundet ud af at når jeg henter indholdet fra textarea med tinymce, "omdøber" den ø til ø osv. hvis jeg ikke bruger tinymce, skriver den bare "ø", så jeg skal vel på en måde have lavet ø om til ø med mit javascript inden jeg sender det videre med ajax, men hvordan?
nu har jeg så bare et andet problem, jeg bruger systemet til at redigere i htm-filer og når jeg åbner dem er de i ISO-8859-1, men når de så bliver gemt bliver de ændret til UTF-8 - kan man ændre på det i php?
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.