Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

Underlig UTF-8 kodningsfejl

Side 1 ud af 1 (6 indlæg)
  • 1
Fra København
Tilmeldt 30. Mar 05
Indlæg ialt: 1324
Fra  Altero Design Skrevet kl. 23:16
Hvor mange stjerner giver du? :

Jeg står med et lidt mærkeligt problem jeg ikke lige helt forstår.

Jeg har lavet et system hvor man kan oprette små tekster og på samme side kan man redigerer disse tekster.

Når jeg opretter en ny tekst, så bliver æ,ø og å konverteret til nogle hyroglyffer, f.eks. bliver ordet "træls" til "træls".

Hvis så redigerer teksten og retter æ'et og gemmer den på ny, så bliver det gemt korrekt.

Jeg forstår simpelthen ikke hvordan dette sker når både oprettelse og rettelse foregår på én og samme side.

Databasen er MySql, kodet i ASP

Feltet i databasen er utf8_danish_ci

Kodningen på hjemmesiden er sat til <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Er der en haj der kan hjælpe?

Fra Vester Skerninge
Tilmeldt 12. Jun 08
Indlæg ialt: 514
Skrevet kl. 23:48
Hvor mange stjerner giver du? :

Jeg har haft samme problem på en af mine sider... Jeg fik besked på at jeg skulle placere følgende i headeren:

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>

Jeg har ikke haft problemer siden.

Skal lige nævnes at jeg ikke har ret meget forstand på programmeringen, og har ingen anelse om det virker i dit tilfælde.

Tilmeldt 10. Nov 09
Indlæg ialt: 0
Skrevet kl. 23:50
Hvor mange stjerner giver du? :

Som tobias siger..

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

med

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>

 

Så skulle det gerne virke.

Tilmeldt 29. Sep 08
Indlæg ialt: 312
Fra  cSupport Skrevet kl. 03:23
Hvor mange stjerner giver du? :

Jeg kan lige uddybe for forståelsen skyld. Hvis du ser samme kode fejl når du kigger data i tabellen så er der en klar grund til det. Det webinterface hvorpå du gemmer data, bliver det sendt som ISO-8859-1 format (højst sandsynlig). Det kommer så ind i databasen, bliver opfattet som ren UTF-8 den får ind og gemt sådan.

 

Når det så hives ud igen, har du allerede defineret at siden vises i UTF-8. Når data så vises, er det faktisk ikke rigtig UTF-8 i databasen, det blev jo faktisk sendt som ISO-8869-1 (omkodet til UTF-8).

 

Derfor når det gemmes, bliver det sendt som træls, i databasen gemmes det som træls, det hives ud og alt efter hvad siden er kodet som vil det blive vist sådan.

 

Så rådet er, hav styr på hvordan data sendes og behandles HELE vejen :) Ved ikke om du overhovedet kan bruge denne forklaring til noget, men altid rart at vide hvordan det egentlig fungerer.

Tilmeldt 20. Sep 10
Indlæg ialt: 12
Skrevet kl. 11:35
Hvor mange stjerner giver du? :
Gennemsnit 5,0 stjerner givet af 1 person

Mit råd er - hold det altid til UTF-8. Jeg har selv brugt mange timer på lige præcis det samme, og har erfaret at når bare man holder ALT til UTF8, så kører det meget lettere :)

Hold dig væk fra ISO 8859-1, det er en lappeløsning efter min mening.

Grunden til jeg siger det, er at som du selv nævner at din encoding i MySQL er UTF8-danish-ci. Jeg vil dog anbefale UTF8-general-ci.

Hvis du hiver UTF8 data ud af MySQL og prøver at vise det i et ISO 8859-1 chartset HTML dokument, får du fejl.

De ting du skal sikre dig er:

  • Databasen skal være i UTF8 encoding.
  • Når du laver kald til MySQL databasen, skal du specificere at dataoverførslen skal ske med UTF8 encoding
  • Dit HTML dokument skal specificeres med UTF8 via meta tags, men også helst via ASP hvis den har muligheden for det. I PHP kan du angive headers hvor du yderligere fortæller at alt i dette script er i UTF8.
  • Den sidste og klart den vigtigste, og den hvor folk oftest går galt i byen er, at dine dokumenter skal gemmes med UTF8 encoding. :) Dette kræver at du redigerer i dine dokumenter med et program som notepad++, dreamweaver og lign. Ved ikke om wordpad kan klare det, men windows notepad kan ikke. I dreamweaver ligger den under page properties og i notepad++ ligger den i menu baren under encoding.

Hvis du overholder dette, lover jeg dig at du aldrig nogensiden vil se mærkelige tegn istedet for æ ø å igen.

<!DOCTYPE taggen er selvfølgeligt altid påkrævet i starten af alle dokumenter og som en ekstra bonus kan du altid deklarere sproget i html tag også - f.eks. <htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="dalang="da">

Læs mere om de to ting på http://www.w3schools.com/

Fra København
Tilmeldt 30. Mar 05
Indlæg ialt: 1324
Fra  Altero Design Skrevet kl. 10:36
Hvor mange stjerner giver du? :

I må undskylde jeg ikke er vendt tilbage tidligere, men jeg har virkelig rodet med det her.

Forslaget med at bruge iso-8859-1 dur ikke, da jeg benytter javascript/jquery som skal benytte UTF-8.

Alle mine filer er kodet som UTF-8, men jeg fandt ud af, at mine webserver ikke leverede encoding i det rigtige format, så det fik jeg løst ved at tilføje følgende øverst på mine sider:

Response.ContentType = "text/html" 
Response.AddHeader "Content-Type", "text/html;charset=UTF-8" 
Response.CodePage = 65001 
Response.CharSet = "UTF-8"

Det var en kombination af jeres forslag der satte kursen for mig, så tak for jeres bidrag.

 

 

Side 1 ud af 1 (6 indlæg)