Avatar billede IT-Gunner Nybegynder
23. juni 2012 - 00:27 Der 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.

nogle der er støt på denne udfordring før ?
Avatar billede tobrukDk Novice
23. juni 2012 - 00:33 #1
prøve bruge


<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Avatar billede IT-Gunner Nybegynder
23. juni 2012 - 00:42 #2
Det bruger jeg allerede det er det der er så underligt :-/
det gør vel ingen forskel at jeg lukker taget så det ser sådan her ud vel ?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Avatar billede olebole Juniormester
23. juni 2012 - 00:57 #3
<ole>

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.

/mvh
</bole>
Avatar billede IT-Gunner Nybegynder
23. juni 2012 - 01:20 #4
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 ?
Avatar billede olebole Juniormester
23. juni 2012 - 01:44 #5
Ctrl+J -> Title/Encoding -> Encoding -> Unicode (UTF8)

Der må ikke være flueben i Include Unicode Signature (BOM) i samme dialog.
Avatar billede DeeDawg Nybegynder
23. juni 2012 - 07:45 #6
@olebole: Kan godt være jeg er forkert på den, men så vidt jeg ved er det vist ligemeget om du bruger utf8_danish_ci eller utf8_general_ci. :)
Avatar billede erikjacobsen Ekspert
23. juni 2012 - 12:09 #7
Det kan Ole vist ikke svare på så tidligt på dagen, så lad mig....

For at få vist tegnene er begge dele gode nok, men i en ORDER BY kan du kun regne med "dansk" sortering, hvis du anvender utf_danish_ci.
Avatar billede IT-Gunner Nybegynder
23. juni 2012 - 13:57 #8
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 "&oslash;&aring;&aelig;" 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 ?
Avatar billede IT-Gunner Nybegynder
23. juni 2012 - 15:00 #9
Det skal lige siges at i mine beckend documenter bliver de vist helt fint det er kun frontend der er et problem ?
Avatar billede olebole Juniormester
23. juni 2012 - 15:58 #10
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  =)
Avatar billede olebole Juniormester
23. juni 2012 - 16:09 #11
#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
Avatar billede IT-Gunner Nybegynder
23. juni 2012 - 17:46 #12
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 :)
Avatar billede olebole Juniormester
23. juni 2012 - 18:01 #13
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  =)
Avatar billede olebole Juniormester
23. juni 2012 - 18:04 #14
- 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)
Avatar billede DeeDawg Nybegynder
23. juni 2012 - 18:28 #15
Så blev jeg det klogere. :)
Avatar billede olebole Juniormester
23. juni 2012 - 19:10 #16
#16: Du kan evt. prøve dette:

<?php
$a = array('foo', 'æbler', 'øllebrød', 'ål', 'bar', 'baz');
sort($a);
var_dump($a);

echo '<hr>';

setlocale(LC_ALL, 'dan_dnk');
sort($a, SORT_LOCALE_STRING);
var_dump($a);
?>

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  =)
Avatar billede IT-Gunner Nybegynder
23. juni 2012 - 20:36 #17
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 :)
Avatar billede erikjacobsen Ekspert
23. juni 2012 - 20:39 #18
Mig? Nu er PHP og UTF8 ikke verdens bedste venner - så, Ole, er eksemplet fra dig gemt som UTF8?
Avatar billede olebole Juniormester
23. juni 2012 - 23:06 #19
@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  =)
Avatar billede olebole Juniormester
23. juni 2012 - 23:08 #20
- og jeg har teste under Win7. Under *nix skal man bruge:

setlocale(LC_ALL, 'da_DK');

Det kan dog imødegås med:

setlocale(LC_ALL, 'da_DK', 'dan_dnk');

- som bør fungere under begge  =)
Avatar billede erikjacobsen Ekspert
23. juni 2012 - 23:23 #21
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 ...
Avatar billede olebole Juniormester
23. juni 2012 - 23:38 #22
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  =)
Avatar billede IT-Gunner Nybegynder
31. juli 2012 - 19:38 #23
hmm
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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