Avatar billede hrole Mester
03. november 2008 - 20:16 Der er 21 kommentarer og
1 løsning

Danske bogstaver i MySQL, phpAdmin og Dreamweaver

Hej. Jeg er meget i tvivl om hvor selve problemet er, men jeg forsøger at forklare.
Jeg har i Excel eksporteret en fil til semikolonsep. teksfil som er importeret i Phpadmin. Her vises de danske bogstaver fint. I Dreamweaver har jeg oprettet en søgeside (.php), som forbinder til databasen oprette i Phpadmin. Problemet er at søgeresultater som burde indholde æ, ø og å vises forkert - men andet indhold, også æ, ø og å vises fint.
Kan I hjælpe med at lokalisere problemet?
Avatar billede egeriis Nybegynder
03. november 2008 - 22:20 #1
Tjek hvilket indkodning MySQL er sat op med og send dette charset med i en header. Via PHP gøres det sådan her:

header("Content-type: text/html; charset=iso-8859-1");

Hvor iso-8859-1 er et charset. Iso-8859-1 er vesteuropæisk ISO-standard, men din database er meget vel sat op til UTF-8, også kaldet unicode.
Avatar billede egeriis Nybegynder
03. november 2008 - 22:21 #2
Note: I phpMyAdmin kalder de charset for 'collation' og værdien kan findes under 'Operations'.
latin1 er det samme som iso-8859-1.
Avatar billede hrole Mester
03. november 2008 - 22:40 #3
jeg indsatte
header("Content-type: text/html; charset=iso-8859-1");
med det resultat at søgeresultaternerne er med æ, ø og å, MEN øvrigt indhold med æ, ø og å vises forkert.

Kollation i phpadmin er utf8_danish_ci.
Avatar billede egeriis Nybegynder
04. november 2008 - 13:26 #4
Det indhold som ikke bliver vist korrekt, er indkodet med et andet charset i så fald. Det skal du lige få styr på, og få lavet det til samme indkodning.

Hvis det bliver vist korrekt med den header du skriver, er kollationen i den tabel du får søgeresultater fra, ikke med utf8. Med mindre du decoder det.

Ligger dit andet indhold også i database?

Hint: Tag et kig på PHP funktionerner utf8_decode og utf8_encode.
Avatar billede hrole Mester
04. november 2008 - 16:36 #5
Det andet indhold er IKKE i database.

Kollation i Phpadmin er utf8_danish_ci, så det må vel være min php-søgeresultatside der er problemet. Det er ikke bevidst jeg decoder det, men database er ret nyt for mig, så jeg har endnu ikke helt overblikket over hvor meget Dreamweaver styrer.

Encoding på siderne er sat til UTF-8, og i head-delen står:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Det burde vel være korrekt eller?
Avatar billede hrole Mester
05. november 2008 - 19:47 #6
Jeg fandt en lignende tråd her på siden, hvor der står man skal sikre sig:
1) din database bruger utf-8 (tjek kollationer i phpMyAdmin)
2) din server sender dokumenterne som utf-8
3) dine dokumenter er gemt som utf-8
4) du bruger en utf-8 meta i dine dokumenter

Jeg har gjort følgende:
1) I phpadmind er MySQL Tegnsæt:UTF-8 Unicode (utf8) og MySQL forbindelses-sammenkøring: utf8_danish_ci.
2) jeg går ud fra det er forbindelsessammenkøring som er nævnt under 1)
3) jeg har åbnet i notepad og sikret dette er korrekt
4) jeg har <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> i meta

Hvor kan problemet være?
Avatar billede egeriis Nybegynder
05. november 2008 - 20:05 #7
Det du skal kontrollere når du har gemt dokumentet som UTF-8, er at dine danske tegn står korrekt i selve filen. De burde ændre sig hvis de var forkerte.

I Dreamweaver kan du indstille hvilken indkodning den skal bruge. Jeg bruger ikke selv Dreamweaver, så jeg ved dog ikke hvor. Kig igennem indstillinger og se om du ikke kan finde det. Og når du er sikker på at redigeringen af dokumentet foregår i UTF-8, skal du kontrollere det tekst som står forkert på sitet :)
Avatar billede hrole Mester
05. november 2008 - 21:04 #8
De danske tegn står i filen når den er gemt (php-filen hvor databaseresultaterne vises).
I Dreamweaver er der under page properties valgt Unicode UTF-8 og unicode normalization form: C (Canonical Decomposition, followed by Canonical Decomposition).

I phpadmin vises de danske bogstaver. I dreamweaver er der en testmulighed for at søge i database, her vises fx å som kinesiske(?) tegn, mens de på hjemmesiden vises som firkanter.

Det giver ingen mening.
Avatar billede hrole Mester
06. november 2008 - 19:41 #9
Jeg har nu forsøgt at ændre koallation til mange af de andre muligheder, men intet ændre på mit søge resultat. Det burde det, eller har jeg misforstået noget?
Avatar billede egeriis Nybegynder
08. november 2008 - 22:32 #10
Hmm. Det lyder meget mystisk. Har du evt. Firebug installeret?
Avatar billede hrole Mester
08. november 2008 - 22:49 #11
Nej, det mener jeg ikke. Webhotellet er Surftown.
Avatar billede egeriis Nybegynder
08. november 2008 - 23:27 #12
Det jeg gerne ville vide, var hvilken indkodning din browser viser. Hvis du bruger Firefox, så kan jeg klart anbefale dig at hende den udvidelse som hedder Firebug. Den er super fed til frontend udvikling.

Hvis du gør det, så tjek under Net fanen, under headers og response, til dit dokument, hvilken content-type der bliver sendt retur til browseren.
Avatar billede egeriis Nybegynder
08. november 2008 - 23:28 #13
Har du egentlig et eksempel på de her tegn? Prøv evt. at copy/paste her? :)
Avatar billede olebole Juniormester
08. november 2008 - 23:40 #14
<ole>

Prøv at lægge et link til siden, du har problemer med, så vi kan se, hvad der sker  ;o)

/mvh
</bole>
Avatar billede hrole Mester
09. november 2008 - 00:04 #15
Så lykkedes det endeligt. egeriis kommentar ledte mig på sporet. Ved at kikke i kildekoden opdagede jeg at æ, ø og å blev vist. Ved en lille ændring i Dreamweaver (Dynamic text - format - Html encode) blev problemet løst.

Det er vist fair egeriis får point
Avatar billede erikjacobsen Ekspert
09. november 2008 - 00:11 #16
Jeg kender ikke dreamweaver, men html encode lyder suspekt. Hvis du i browserens "vis kilde" ser "ø" skrevet som "&oslash;" har du lappet, men ikke løst dit tegnsæt problem.

...hvilket selvfølgelig også kan være fint nok...
Avatar billede hrole Mester
09. november 2008 - 00:21 #17
ø bliver i kilden vist som ø. Før html encode blev æ, ø og å vist som en firkant, men efter vises de korrekt.
Avatar billede erikjacobsen Ekspert
09. november 2008 - 00:31 #18
Så er det nok OK.
Avatar billede egeriis Nybegynder
09. november 2008 - 00:55 #19
Det lyder stadig til at der er et encoding issue. Men hvis html encoding fungerer er det jo fint. Det bør man i forvejen gøre :)
Avatar billede olebole Juniormester
09. november 2008 - 01:02 #20
Hvor finder du 'Dynamic text - format - Html encode' i DW?
Avatar billede hrole Mester
09. november 2008 - 10:10 #21
Window -> server behavior -> dobb.klik på et oprettet recordset -> format -> Encode - HTML encode
Avatar billede hrole Mester
04. marts 2009 - 15:02 #22
lukker
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
Computerworld tilbyder specialiserede kurser i database-management

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