4588pkdkrikue5c Skrevet 17. april 2009 Del Skrevet 17. april 2009 Hei, Eg har eit normalt ganske normalt problem. Eg får ikkje ÆØÅ til å fungere når eg henter data frå MySQL databasa mi. Eg har satt sammenlikninga til utf8_unicode_ci samtidig som eg kjører <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> i toppen av PHP dokumentet samen i <HEAD> taggane. Prøvde å kjøre spørringa mysql_query("SET NAMES 'utf8'"); som eg fann i ei anna post her på forumet, men det fungerte ikkje. Prøvde óg å skrive header("Content-Type: text/html;charset=UTF-8"); i toppen av PHP dokument utan hell.. Kor kan problemet ligge? Eg kjenner eg vart litt varm no, når eg ikkje finn det ut. Har lest rundt på nett utan at eg forstår så mykje meir.. Eg har forøvrig skreve inn dataene manuelt i PHPMyAdmin, og bruker ikkje ei ekstern side til å poste dataene. Så då kan dei ikkje ha blitt konverterte til anna teknsett på vegen heller? Takker for alle svar! Kjører forøvrig lokal MAMP server på min Mac om det skulle bety noko. Lenke til kommentar
aCa Skrevet 18. april 2009 Del Skrevet 18. april 2009 Er ikke sikker hva som kan være problemet ditt, så sikkert litt dumt spørsmål, men når du la inn dataene i phpmyadmin så valgte du utf-8 ved innlogging og ikke iso-8859-1 som ofte er default? Er databasen bare for web applikasjoner? Hvis den er det, så kan du eventuelt vurdere å brukte html entities for øæå (http://no.php.net/manual/en/function.htmlentities.php). Lenke til kommentar
Ernie Skrevet 18. april 2009 Del Skrevet 18. april 2009 (endret) htmlentities er en stygg løsning på problemet. Nå er det svært vanskelig å hjelpe til noe særlig så lenge vi ikke veit hvordan eksempelvis særnorske tegn blir seendes ut ved utskrift. Er det eksempelvis � (svart «boks» med hvit spørsmålstegn) er det sannsynligvis ISO-8859-1 vist som UTF-8. Er det to tegn der det skulle vært et, f.eks Ã¥ i stedet for en å, er det UTF-8 vist som sannsynligvis ISO-8859-1. Jeg har skrevet noe om hvordan man bruke UTF-8 ordentlig her. For å lage et lite sammendrag av det: Angi tegnsett i HTTP-header:header('Content-Type: text/html; charset=utf-8'); Angi tegnsettet i HTML-dokumentet (for sikkerhetsskyld)<meta http-equiv=Content-Type content="text/html; charset=utf-8"> Angi tegnsettet i ev. forms du har (skal være unødvendig, men igjen, for sikkerhetsskyld)<form accept-charset="UTF-8" method="post"> <!-- Input stuff here --> </form> I utgangspunktet er dette helt unødvendig, men skulle brukeren av en eller annen grunn ha overstyrt tegnsettet i nettleseren vil dataene inn alikevel være korrekt. Dessuten har det den ekle tendensen å sperre for alle andre tegnsett i Firefox når man viser siden Valider at input faktisk er UTF-8: $validUTF8 = mb_check_encoding($string, 'UTF-8'); //will give true if valid, false if not Sett tegnsett ved tilkobling til MySQL: mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'"); Pass på å bruk funksjoner som faktisk støtter UTF-8 Gjør man det skal ting fungere og vises korrekt. Endret 18. april 2009 av Ernie Lenke til kommentar
4588pkdkrikue5c Skrevet 18. april 2009 Forfatter Del Skrevet 18. april 2009 (endret) Tusen takk for utfyllande svar! Eg hadde kontrollert alt du sa, bortsett fra at eg hadde gjort ein makaber feil. Leste eit litt utydeleg innlegg om mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'"); i ei anna post, og kjørte det som ei spørring i MySQL. Kvifor eg gjorde det anar eg ikkje - men når eg satte det i PHP scriptet mitt såg eg både æ, ø og å'ar! Du redda meg no, hvis ikkje hadde eg satt informasjonen i flatfiler (fyfy!) Igjen, tusen takk! Redigert: For å hjelpe nokon andre kan eg gjerne utdype litt. Eg har mest sannsynleg hatt ISO-8859-1 då tekna vart til � (svarte bokstar med kvite spørsmålsteikn). Og problemet vart løyst med å sette inn mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'"); i PHP koda, då naturlegvis forutsatt at eg hadde velt UTF-8 som standard i phpmyadmin Endret 18. april 2009 av steffenz 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å