Tegnsæt problem med æ, ø og å - meget kritisk

Tags:    php

Jeg har et mærkværdigt problem med tegnsæt.

En Mysql db (v5), php, en webapplikation (Eventum) og noget Lotus Notes.

Webapplikationen kunne tidligere vise danske tegn korrekt fra databasen. En eller anden rodede med noget og nu vises æ,ø og å som enten firkanter eller japanske tegn afhængig af hvilken browser der kører webapplikationen.

I databasen ser tegnene rigtige ud når jeg browser i den med MySQL Query Browser. Når jeg laver en egen webapplikation og henter data fra db, så ser di rigtige ud.

Webapplikationen afvikles på en ISS.

Hvilke filer skal stemme overens i php, MySQL osv. og hvilket charset skal benyttes (UTF-8, ISO-8859-1, latin1?)

Browseren viser tilsyneladende fast UTF-8 - det kan jeg ikke ændre?

HJÆLP



6 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 10 karma
Sorter efter stemmer Sorter efter dato
Det kunne godt tænkes at en af filerne er blevet formateret med et forkert tegnsæt. Her er den eneste metode at slavisk gå igennem alle filerne en-for-en og gemme dem i UTF-8, eller hvilket format der nu er standard.

Det kunne også tænkes at der er blevet ændret i en af funktionerne som formatere teksten. Men hvor dette kan være sket er svært at sige.



Prøv at tilføje denne linje i din head sektion:

Fold kodeboks ind/udKode 




Du kan også prøve med

Fold kodeboks ind/udKode 


Husk af det skal være mellem <head> og </head> i alle dine sider. Det hjælper jo ikke noget hvis den side hvor der er en form ikke har det. Når du så submitter formen så sender den det jo bare med det forkerte tegnsæt.

Altså samme tegnsæt i alle sider. Det hjælper jo heller ikke at bruge iso-8859-1 i den side der skriver data ind i din database, og så bruge UTF-8 i den side der henter og viser dataen. Selvom det nok ville blive en interasant tekst at se på :D

Driller det stadig?



Det er sandsynligvis en af de ovenstående, men bare for at få det med, så skal du prøve at ændre sproget i din database/tabel/række



Du smider

"<meta http-equiv="Content-Type" content="text/html; charset=utf-8">"

i dit head tag i dit XHTML. Også gemmer du alle dine php, html og diverse dokumenter med enkodning utf-8, hvis din editor ikke kan det, så anskaf dig en ordentlig editor, som fx e-texteditor.

Når du så benytter en database, som fx mysql, så vil den typisk per default være en anden enkodning, her kan du så bare bruge funktionen utf8_encode (tilsvarende utf8_decode).



Det er kun tekst, som hentes i databasen samt mails afsent fra Lotus Notes til applikationen og gemt i databasen, der ser forkert ud. Faste tekster er tilsyneladen ok.

Der er kun ændret i ini-filer og andre "setup-filer". Altså ikke noget med sourcekode ændringer og måden disse er gemt på...

Findes der måder man kan teste/trace det på?

Kan det være noget med setop på browseren, som applikationen kan styre via metatags eller noget generelt setup?



t