' in databank wordt � als output
Alles werkt perfect op 1 vervelend detail na.
De tekst in de SQL databank: Ik werd 's ochtends vroeg wakker.
De output die ik krijg is: Ik werd �s ochtends vroeg wakker.
Ik gebruik volgende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo "<p align='left'/> <img src='images/".$kleurfile."' width='15px'/></img/>";
// datum wijzigen naar ons gangbaar formaat
$source = $row['t'];
$date = new DateTime($source);
echo $date->format('d/m/Y');
echo "</p/> <p align='center'/><h2/>" .$row['header']. "</h2/>".$row['body']."</p/>";
}
?>
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo "<p align='left'/> <img src='images/".$kleurfile."' width='15px'/></img/>";
// datum wijzigen naar ons gangbaar formaat
$source = $row['t'];
$date = new DateTime($source);
echo $date->format('d/m/Y');
echo "</p/> <p align='center'/><h2/>" .$row['header']. "</h2/>".$row['body']."</p/>";
}
?>
Ik weet, het is een echte amateur code maar het werkt vlekkeloos met uitzondering van dat enige probleempje.
Het gaat hier om $row['body'] waar de tekst in staat die fout weergegeven wordt.
Het blog systeem van de input kan ik niet zelf wijzigen wegens te ingewikkeld.
Als iemand een idee heeft hoe ik dit kan aanpakken, zou ik dankbaar zijn.
' veranderd dus in � bij output en dat is nogal vervelend.
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 27/01/2015 22:24:33 door - Ariën -
- Zorg ervoor dat je al je bestanden URL-8 encoding hebben
- Zorg ervoor dat je UTF-8 metatags gebruikt: <meta charset="UTF-8">
- Zorg er voor dat je UTF-8 headers in PHP gebruikt, vóór je de output plaatst: header('Content-Type: text/html; charset=utf-8');
- Zorg ervoor dat je hele database velden en tabellen gebruikt die UTF-8 ondersteunen, en dat je database ook aan wordt gesproken door PHP om UTF-8 te gebruiken.
Dan kan er helemaal niks meer misgaan, en zal je alle exotische karakters zoals éáóí etc. weer kunnen zien.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
</html>
2. database collatie op utf8_unicode_ci instellen (Ook alle tekst kolommen)
3. na de functie mysql_connect() de functie mysql_set_charset() aanroepen:
DAARBIJ:
mysql_* functies zijn oud en moeten niet meer gebruikt worden. Gebruik bij voorkeur PDO.
Dank u voor de snelle reacties, ik ga onmiddelijk testen.
Anyhoo, je hebt de hint wss al begrepen: zorg dat overal je character encodingen hetzelfde zijn.
EDIT:
Quote:
Dan kan er helemaal niks meer misgaan, en zal je alle exotische karakters zoals éáóí etc. weer kunnen zien.
Tenzij je geen character encoding had geselecteerd op het moment van wegschrijven. Als je dan nu je connectie criteria repareert komt de fout pas naar boven ;-).
Gewijzigd op 27/01/2015 22:38:32 door Thomas van den Heuvel
Het is ondertussen gelukt.
was wat ik miste.
Heel hard bedankt voor de hulp, hiermee is mijn pagina helemaal af.
Probeer de volgende tekst eens op te slaan, te wijzigen, en opnieuw op te slaan:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
' " \
\' \" \\
\\' \\" \\\
&
&
&amp;
A good day, World!
Schnen Tag, Welt!
Une bonne journe, tout le monde!
??? ???? ??????
?? ?, ??!
M?t ngy t?t lnh, th? gi?i!
?????????
\' \" \\
\\' \\" \\\
&
&
&amp;
A good day, World!
Schnen Tag, Welt!
Une bonne journe, tout le monde!
??? ???? ??????
?? ?, ??!
M?t ngy t?t lnh, th? gi?i!
?????????
EDIT: never mind - deze site ondersteunt ook geen UTF-8, lijkt het.
Gewijzigd op 28/01/2015 20:30:23 door Thomas van den Heuvel
Thanks.
Dus de data is wel goed opgeslagen als UTF-8, maar kan niet worden weergegeven in ISO-8859-1 (latin1). Deze karakters worden vertaald naar een '?' als ze terug omgezet worden van UTF-8 naar latin1 (omdat je connectie latin1 is).
Blijft de vraag: waarom is de site niet UTF-8 (en de db wss wel)? :)
EDIT: Ik zie nou een charset in de source, weliswaar na de title-tag, maar goed :)
Gewijzigd op 28/01/2015 13:07:04 door Thomas van den Heuvel