gitarerik Skrevet 9. januar 2010 Del Skrevet 9. januar 2010 Heisann! Jeg jobber med å lage en side som tar i bruk JavaScript og PHP/MySQL. Alt fungerte helt fint når jeg testet det i Firefox, men da jeg prøvde sidene i Microsoft Explorer kom det problemer... Når jeg kjører MySQL-spørringer fra en PHP-fil, takler den ikke Æ, Ø, Å. Jeg har sjekket gjennom alle plasser hvor tegnsett kan settes (MySQL, HTML-filene, Apache, PHP-konfigurasjon osv...), men såvidt jeg kan se så står alt som UTF-8. For å hente informasjonen jeg skal ha i fra MySQL, har jeg en funksjon i en javascript-fil som åpner ei php-fil og sender parametre til fila (liksomfil.php?q=ÆØÅ&h=hei). Det virker som om problemet oppstår når PHP-fila skal hente disse parametrene. Når jeg henter tak i dem, så bruker jeg $_GET['q']. Hvis jeg legger til følgende linje i PHP-fila: echo $_GET['q']; så ser jeg at Firefox og Opera henter parametrene riktig. Æ Ø Å vises akkurat som de skal. Men i Microsoft Explorer så vises Æ Ø Å som firkanter. Hvis jeg dog høyreklikker i Explorervinduet og velger vestlig tegnsett, så hentes parametrene riktig. Men da vises ikke resten av Æ Ø Å-tegnene på sidene riktig. Som nevnt så virker det som om feilen ligger mellom der JavaScriptet åpner php-filen med gitte parametre, og der PHP-filen henter parametrene fra URL'en. Det som gjør ting enda verre, er jo at det fungerer i alle nettleserne jeg har prøvd, untatt Microsoft Explorer. Er det noen som har en anelse om hvorfor dette skjer? På forhånd takk. Lenke til kommentar
JohndoeMAKT Skrevet 9. januar 2010 Del Skrevet 9. januar 2010 Hva får du med denne biten: 'liksomfil.php?q=' . urlencode('ÆØÅ') . '&h=hei'; Lenke til kommentar
xaco Skrevet 9. januar 2010 Del Skrevet 9. januar 2010 er helt normalt. Windows + æøå = ikke sant. vet ikke hvor mange programmer jeg har skrevet hvor windows har hatt problemer med å kjøre programmet, mens linux har hatt 0 problem. Sjekk hvilket tegnsett IE bruker. eller gjør det enda lettere for deg selv, ikke bruk æøå vis du kan.(for eksempel bruk æ=ae, ø=oe og å=aa.)3 Lenke til kommentar
Ernie Skrevet 10. januar 2010 Del Skrevet 10. januar 2010 ... eller enda bedre, bruk ISO 8859-1 (aka. latin1). Det er ganske garantert å fungere så lenge man også lagrer filene som det. Lenke til kommentar
xaco Skrevet 10. januar 2010 Del Skrevet 10. januar 2010 ... eller enda bedre, bruk ISO 8859-1 (aka. latin1). Det er ganske garantert å fungere så lenge man også lagrer filene som det. ISO 8859-15 er vel noe bedre? får du jo med eurotegnet også. Lenke til kommentar
Ernie Skrevet 10. januar 2010 Del Skrevet 10. januar 2010 Nei, hele poenget er at ISO 8859-1 er standard og uproblematisk stort sett over alt, og dermed vil fungere uten at man spesifiserer noe tegnsett i det heltatt (PHP/Apache vil automatisk si det er ISO 8859-1). Trenger man først noe utenfor ISO 8859-1 kan man nesten likegodt gå for Unicode og UTF-8 med en gang. Hvis man ser bort fra at man må bruke mbstring e.l. når man bruker UTF-8 er det stort sett de samme endringene som må til uansett. Man må uansett spesifisere tegnsett på ting som går ut og inn via f.eks. en «form». Den eneste forskjellen er man kan slippe unna å spesifisere tegnsett i tilkobling mot databasen (selv om man egentlig bør gjør det når man ikke benytter iso 8859-1). Dog, trenger man bare € kan man bruke € og uansett vil en nettleser (iallfall Opera) gjøre det om til til en Unicode html-entitet hvis det ikke passer i valgt tegnsett. Lenke til kommentar
gitarerik Skrevet 10. januar 2010 Forfatter Del Skrevet 10. januar 2010 Hva får du med denne biten: 'liksomfil.php?q=' . urlencode('ÆØÅ') . '&h=hei'; Er ikke urlencode en PHP-funksjon? Jeg får i alle fall ikke til å legge til den linja i JavaScript-fila, og det er der i fra jeg sender den adressen. Kan problemet være noe med at forskjellige nettlesere behandler javascript forskjellig? Lenke til kommentar
gitarerik Skrevet 10. januar 2010 Forfatter Del Skrevet 10. januar 2010 (endret) Hva får du med denne biten: 'liksomfil.php?q=' . urlencode('ÆØÅ') . '&h=hei'; Jeg lette etter en JavaScript-funksjon som tilsvarer urlencode, og fant til slutt encodeURIComponent(). Det viser seg at hvis jeg bruker den, så ser det ut som at sidene fungerer riktig i alle typer nettlesere. So far, so good Takker for all hjelp! Endret 10. januar 2010 av gitarerik Lenke til kommentar
JohndoeMAKT Skrevet 10. januar 2010 Del Skrevet 10. januar 2010 Er ikke urlencode en PHP-funksjon? Jeg får i alle fall ikke til å legge til den linja i JavaScript-fila, og det er der i fra jeg sender den adressen. Beklager jeg trodde den delen av innholdet ditt var PHP-generert siden du poster i PHP-seksjonen. Jeg lette etter en JavaScript-funksjon som tilsvarer urlencode, og fant til slutt encodeURIComponent(). Det viser seg at hvis jeg bruker den, så ser det ut som at sidene fungerer riktig i alle typer nettlesere. So far, so good Det stemmer, encodeURIComponent() er nesten tilsvarende urlencode i JavaScript. Flott at det fungerer. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå