23. juni 2012 - 00:27Der er
22 kommentarer og 1 løsning
Problemer med encoding
Hej alle eksperter,
Jeg har en udfordring, når jeg indsætter æ,ø eller å i min database bliver de lavet om til øå og æ. Og når jeg udskriver dem på frontend, viser den de samme tegn.
Da jeg oprettede dokumenterne, i tidernes morgen, kom jeg til at sætte charsettet min admin del til ISO-8859-1 og min frontend som utf-8. Men jeg har både prøvet, at ændre charsettet på alle sider til det ene og det andet. Men lige lidt hjælper det ?
pt. er de sat til utf-8 og min phpmyadmin er sat utf8_generel_ci. jeg arbejder i dreamweaver.
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Du skal sætte databsen til sat utf8_danish_ci - bruge en utf-8 meta - og sørge for, dine filer bliver gemt som utf-8. Det kan du i de fleste editorer, men det er forskelligt, hvordan.
Bemærk, at forkert encoded data, som allerede ligger i databasen, ikke bliver konverteret, når du skifter kollationer på tabellerne.
Du skal sætte data ind påny - naturligvis fra et utf-8 dokument - og derefter prøve at hente og vise dem.
Tusinde tak skal du have ole. Du har ikke tilfældigtvis nogle ide om hvordan man skal gemme filerne i dreamweaver så den for utf-8 tegnsættet med vel ?
Hejsa 1000 tak for svarene, har nu fulgt ovenstående metode og ændret tegnsættet på samtlige dokumenter til utf-8. databasen er sat til utf_danish_ci. Det er underlige er, at når jeg indsætter noget med min ck editor, sætter den æøå sådan her "øåæ" men de andre input felter i min form indsætter dem stadigt som "æøå" :-/ nogle der har en ide om hvad man kan gøre ? det behøver ikke være pæn kode bare det virker ?
Så er din CKEditor tydeligvis sat forkert op. Er den ikke det, bør du bruge noget andet, da den så er mere eller mindre ubrugelig. Den må naturligvis ikke konvertere æ, ø og å til HTML-entities i 2012.
Jeg forstår ikke rigtig, hvad du mener med, at tegnene bliver vist korrekt i dine backend dokumenter. De viser jo som bekendt ikke noget =)
#6: Tegnene æ, ø og å står ikke i denne rækkefølge i tegntabellen - selvom det er sådan, de står i vores 'bette landbys' alfabet. Kikker du på deres Unicode værdier (som du f.eks. bruger dem i JS):
æ: \u00e6 ø: \u00f8 å: \u00e5
- kan du se, at å kommer først, derefter æ - og til sidst kommer ø.
Sætter du tabellernes kollationer til utf_danish_ci, gør du databasen bevidst om vores specielle rækkefølge. Derfor har det, som Erik skriver, f.eks. betydning ved sortering af rækker
Jeg fandt problemet, jeg har 2 dbConnect filer, og i den til min backend, har jeg ikke fået sat, "mysql_set_charset("utf8");" men tusinde tak for hjælpen alle sammen :) send svar så er der point :)
Ellers tak, jeg samler ikke point. Måske nogle af de andre(?) =)
Du bør nu stadig se, om du ikke kan få sat CKEditor op til ikke at bruge HTML-entities. Det giver ikke mening at stoppe den (eller anden) slags HTML-snavs i en database =)
- og at du behøver at bruge mysql_set_charset("utf8") kunne tyde på, du bare har trampet på termometret. Du kan måske ikke længere se det, men patienten er nok stadig syg *o)
Forudsat, du har den locale installeret - og den hedder det samme - vil du kunne se, at æ, ø og å indbyrdes er korrekt sorteret efter anden sortering. Derimod står de som før nævnt efter første sortering.
Hvorfor de så står allerførst. har jeg så ikke lige den gode forklaring på. Måske, Erik har =)
Ja det kan jo også være jeg bare bør fjerne den begge steder ? det vil jeg kig på :) men det vigtigste er at den virker i første omgang endnu engang tak :)
@Erik:: Nej, det er kodet i iso-8859-1, ligesom alle andre indlæg på Eksperten. Hvis du mener, om jeg har testet i et utf-8 kodet dokument, er svaret: Ja =)
Ja, ja, jo, jo, men det er jo derfor. Hvis php-filen er gemt som iso8859-1 bliver det sorteret nydeligt, med en dansk locale, men med php-filen gemt som utf8 kommer æbler før foo, fordi php forstår utf8 li'så godt som jeg forstår Karakalpak. PHP kigger på første byte af repræsentationen for æø og å, og den er ikke større end en Lille-Lars, og kommer derfor først. Eller hva' ... ved ikke lige om jeg forstår hvor du vil hen ...
arh ... sæ'føl'somt! Det havde jeg ikke lige tænkt på =)
Det undrer mig nu lidt, du ikke kan karakalpak. Man skal bare kunne en smule kasakhisk og lidt nogay, så er det ikke noget problem at bestille et glas hvidvin - eller en stegt alk med bynkesovs =)
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.