[opgelost] Rare tekens
Hoi,
ik heb alles op utf8 gezet en nog krijg ik rare tekens uit mijn db.
en in de db staat alles op utf8_unicode_ci
ik haal mijn gegevens zo op:
maar toch worden letters als "ç" niet goed weergeven.
opgelost: htmlentities()
ik heb alles op utf8 gezet en nog krijg ik rare tekens uit mijn db.
Code (php)
1
2
2
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
header("Content-Type:text/html;charset=utf-8");
header("Content-Type:text/html;charset=utf-8");
en in de db staat alles op utf8_unicode_ci
ik haal mijn gegevens zo op:
maar toch worden letters als "ç" niet goed weergeven.
opgelost: htmlentities()
Gewijzigd op 07/01/2012 13:16:18 door PHP Jasper
Gesponsorde koppelingen:
Nog een tip. Gebruik de functies als volgt:
Zie ook de beschrijving op PHP.net
Code (php)
1
2
3
4
2
3
4
<?php
htmlspecialchars($value, 'ENT_QUOTES', 'UTF-8');
htmlentities($value, 'ENT_QUOTES', 'UTF-8');
?>
htmlspecialchars($value, 'ENT_QUOTES', 'UTF-8');
htmlentities($value, 'ENT_QUOTES', 'UTF-8');
?>
Zie ook de beschrijving op PHP.net
Gewijzigd op 07/01/2012 11:49:37 door Niels Kieviet
Niels, maar nu klopt het toch hé? Gegevens uit db => htmlentities erover?
Gewijzigd op 07/01/2012 12:32:37 door PHP Jasper
htmlspecialchars converteert speciale chars naar HTML entities. Een paar voorbeelden:
& => &
" => " (Wanneer je niet gebruik maakt van ENT_QUOTES)
' => ' (Alleen wanneer je ebruik maakt van ENT_QUOTES)
< => <
> => >
Als je alle chars wilt converteren naar HTML entities kan je htmlentities gebruiken.
Eigenlijk is de functie dus min of gelijk aan htmlspecialchars.
Op PHP.net staat dan ook het volgende voorbeeld:
Wanneer je ENT_QUOTES gebruikt krijg je dit:
Kort samengevat: htmlspecialchars converteert alle speciale karakters en htmlentities alle karakters naar HTML entities.
Snap je?
& => &
" => " (Wanneer je niet gebruik maakt van ENT_QUOTES)
' => ' (Alleen wanneer je ebruik maakt van ENT_QUOTES)
< => <
> => >
Als je alle chars wilt converteren naar HTML entities kan je htmlentities gebruiken.
Eigenlijk is de functie dus min of gelijk aan htmlspecialchars.
Quote:
This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.
Op PHP.net staat dan ook het volgende voorbeeld:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$str = "A 'quote' is <b>bold</b>";
// Uitkomst: A 'quote' is <b>bold</b>
echo htmlentities($str);
?>
$str = "A 'quote' is <b>bold</b>";
// Uitkomst: A 'quote' is <b>bold</b>
echo htmlentities($str);
?>
Wanneer je ENT_QUOTES gebruikt krijg je dit:
Code (php)
1
2
3
4
2
3
4
<?php
// Uitkomst: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>
// Uitkomst: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>
Kort samengevat: htmlspecialchars converteert alle speciale karakters en htmlentities alle karakters naar HTML entities.
Snap je?
Gewijzigd op 07/01/2012 12:21:41 door Niels Kieviet
Ja ik snap het. Dus je zou eigenlijk altijd voor htmlentities kunnen gaan..
Gewijzigd op 07/01/2012 12:32:26 door PHP Jasper
Nee!
Altijd htmlspecialchars. Als je utf-8 gebruikt is het niet nodig om bijvoorbeeld het euro-teken om te zetten naar de html code ervoor. Het zit namelijk al in je charset.
Altijd htmlspecialchars. Als je utf-8 gebruikt is het niet nodig om bijvoorbeeld het euro-teken om te zetten naar de html code ervoor. Het zit namelijk al in je charset.
Ah ik had je berichtje niet meer gezien, maar inderdaad wat Pim zegt altijd htmlspecialchars gebruiken.
En dan dus op de volgende manieren UTF-8 instellen:
In je header
In je mysql tabel
In je mysql verbinding
In je html files
In je header
In je mysql tabel
In je mysql verbinding
In je html files
In de db is mijn collatie utf8_general_ci klopt dat?
Gewijzigd op 25/01/2012 00:08:11 door PHP Jasper



