Avatar billede msdb Nybegynder
11. september 2011 - 16:07 Der er 27 kommentarer og
1 løsning

php og unicode

Jeg bruger nogle echo funktioner nogle steder på mit site, f.eks. på et forum, som viser tekst der gemmes i min database. Denne visning kan dog ikke håndtere danske specialtegn 'æøå'.

Dvs. at sætningen 'rød grød med fløde' f.eks. vises som 'rød grød med fløde'

Hvordan får jeg omdannet bogstaverne til den rigtige visning?
Avatar billede arne_v Ekspert
11. september 2011 - 16:46 #1
Fortaeller browseren at du bruger UTF-8?
Avatar billede majbom Novice
11. september 2011 - 17:00 #2
sæt charset til UTF-8 på dit html-document og sørg for at din fil er encodet som UTF-8 - hvis du har en database koblet på, skal denne også køre med UTF-8 tegnsættet - både felter og forbindelse
Avatar billede msdb Nybegynder
11. september 2011 - 17:14 #3
Over min html-body anføres:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--

of værdierne i databasen er under collation sat til utf8_danish_ci
Avatar billede majbom Novice
11. september 2011 - 19:31 #4
og er dine filer encodet som UTF-8 osse?
Avatar billede msdb Nybegynder
11. september 2011 - 19:37 #5
Det tror jeg ikke. Kan du uddybe?
Avatar billede majbom Novice
11. september 2011 - 19:43 #6
hvilken editor bruger du til at skrive dine filer i?
Avatar billede msdb Nybegynder
11. september 2011 - 19:58 #7
dreamweaver
Avatar billede msdb Nybegynder
11. september 2011 - 20:10 #9
Filerne er allerede sat til utf-8, jo.
Avatar billede majbom Novice
11. september 2011 - 20:23 #10
har du et link til siden så?

evt hele koden? smid den evt. på pastebin.com og lige et link her...
Avatar billede majbom Novice
11. september 2011 - 20:23 #11
lige = lig
Avatar billede msdb Nybegynder
11. september 2011 - 20:38 #12
Her er koden fra én af filerne der viser forkerte tegn:

http://pastebin.com/0W47wBV8
Avatar billede majbom Novice
11. september 2011 - 20:42 #13
er det alt der bliver skrevet forkert, eller kun tekst fra databasen, eller omvendt?
Avatar billede msdb Nybegynder
11. september 2011 - 20:47 #14
Det er faktisk kun tekst fra databasen.
Avatar billede majbom Novice
11. september 2011 - 20:55 #15
prøv lige med:

mysql_set_charset('utf8');


efter du har oprettet forbindelse til din database...
Avatar billede msdb Nybegynder
11. september 2011 - 21:06 #16
Lader ikke til at have nogen effekt.
Avatar billede majbom Novice
11. september 2011 - 21:16 #17
hvordan ser din tekst ud i phpmyadmin? altså når du ser tekst fra en tabel...
Avatar billede msdb Nybegynder
11. september 2011 - 21:18 #18
Så vises det også forkert.
Avatar billede majbom Novice
11. september 2011 - 21:21 #19
så er det nok sat ind som ISO-8859-1 i et UTF-8 felt...
Avatar billede msdb Nybegynder
11. september 2011 - 21:26 #20
Hvordan sætter jeg teksten ind som utf-8?
Avatar billede majbom Novice
12. september 2011 - 08:41 #21
igen, skal alt være samme charset (UTF-8), både siden med formularen, siden der indsætter i databasen og selvfølgelig også databaseforbindelsen
Avatar billede msdb Nybegynder
12. september 2011 - 10:04 #22
Alle mine filer har følgende indstillinger:

http://www.noz.dk/Snap1.jpg
Avatar billede msdb Nybegynder
12. september 2011 - 10:07 #23
Med hensyn til databasen har jeg i mysql sat værdierne til utf8_danish_ci. Kan dette forsage problemer?
Avatar billede msdb Nybegynder
12. september 2011 - 11:26 #24
Jeg har også forsøgt at ændre server behavior for mit recordset til html-encode, men det forvandler samme sætning om til 'r&Atilde;&cedil;d gr&Atilde;&cedil;d med fl&Atilde;&cedil;de'
Avatar billede majbom Novice
12. september 2011 - 12:23 #25
som sagt er data'en i databasen "ødelagt".

prøv at at kig på utf8_decode og utf8_encode funktionerne - måske de kan hjælpe dig
Avatar billede msdb Nybegynder
12. september 2011 - 21:00 #26
Jeg løste problemet med at rette den bid kode som viser værdierne fra:

<?php echo $row_meh['news']; ?>

til

<?php echo html_entity_decode($row_meh['news']); ?>

'æøå' bliver nu vist korrekt.
Avatar billede majbom Novice
12. september 2011 - 21:05 #27
super - husk at få lukket spørgsmålet...
Avatar billede msdb Nybegynder
12. september 2011 - 22:16 #28
således.
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
Kurser inden for grundlæggende programmering

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