<meta> tag vraagje
Mensen,
ik heb even een vraag waar ik niet uit komt.
nou kom er wel uit ma vind het alleen beetje vreemd na mijn gedachten gang.
Het is het volgende.
Ik heb 2 verschillende Meta taggen voor op de website.
Deze gebruik ik in combo met:
Nu komt de vraag.
Zodra ik meta tag 2 pak die in mijn ogen logisch klinkt omdat ik mijn database ook op utf-8 heb staan. Zodra ik dan woorden als Café gebruik dus letters als é dan krijg ik een vierkantje.
Pak ik nu meta tag 1 met combo doctype en html code dan krijg ik é wel als é te zien. Nu vraag ik mij dus af is mijn gedachten gang met meta 2 ten opzichte van mijn database verkeerd?
ik heb even een vraag waar ik niet uit komt.
nou kom er wel uit ma vind het alleen beetje vreemd na mijn gedachten gang.
Het is het volgende.
Ik heb 2 verschillende Meta taggen voor op de website.
Code (php)
1
2
2
1= <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
2= <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2= <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Deze gebruik ik in combo met:
Nu komt de vraag.
Zodra ik meta tag 2 pak die in mijn ogen logisch klinkt omdat ik mijn database ook op utf-8 heb staan. Zodra ik dan woorden als Café gebruik dus letters als é dan krijg ik een vierkantje.
Pak ik nu meta tag 1 met combo doctype en html code dan krijg ik é wel als é te zien. Nu vraag ik mij dus af is mijn gedachten gang met meta 2 ten opzichte van mijn database verkeerd?
Waarom doe je het niet gewoon zo?
kan je hier geen htmlspecialchars/htmlentities doorheen gooien ipv afhankelijk te zijn van een meta tag?
i.c.m wat chris zegt natuurlijk.
in principe is dit al genoeg.
i.c.m wat chris zegt natuurlijk.
in principe is dit al genoeg.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TITLE</title>
</head>
<body>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
<title>TITLE</title>
</head>
<body>
</body>
</html>
Gewijzigd op 31/05/2012 14:47:32 door Reshad F
Chris,
Als ik dit doe:
Dan krijg ik in plaats van é vierkantjes.
Doe ik nu:
Dan krijg ik de é wel goed in beeld. Ma dat spreekt eigenlijk tegen, omdat eigenlijk mijn database als utf-8 is gesteld.
Of bedoel jij nu die html regel volledig weg laten?
Na mijn weten meot die er gewoon blijven en is die ook goed?
EDIT:
Ja ik gebruik voor oproepen natuurlijk deze.
Bij het in db proppen gebruik ik de mysql_real_escape_string.
Reshadd oplossing geeft mij een vierkantje met een ? er in.
Als ik dit doe:
Code (php)
1
2
3
4
5
2
3
4
5
<!doctype html public>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
Dan krijg ik in plaats van é vierkantjes.
Doe ik nu:
Code (php)
1
2
3
4
5
2
3
4
5
<!doctype html public>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
Dan krijg ik de é wel goed in beeld. Ma dat spreekt eigenlijk tegen, omdat eigenlijk mijn database als utf-8 is gesteld.
Of bedoel jij nu die html regel volledig weg laten?
Na mijn weten meot die er gewoon blijven en is die ook goed?
EDIT:
Ja ik gebruik voor oproepen natuurlijk deze.
Bij het in db proppen gebruik ik de mysql_real_escape_string.
Reshadd oplossing geeft mij een vierkantje met een ? er in.
Gewijzigd op 31/05/2012 14:52:51 door Frank WD
@Frank: Ik heb daar gisteren ook een tijdje mee zitten kl**ien, Mijn oplossing is gewoon charset=iso-8859-1 gebruiken. Ik snap het ook niet echt.
Frank,
regel 2 weglaten ;)
regel 2 weglaten ;)
en wat als je dit gebruikt?
htmlspecialchars_decode
htmlspecialchars_decode
SanThe,
Ja praat me er niet van zeg. Heb al extra test db aangemaakt met andere charset instellingen en ma lopen pulken en kl**en.
Maar ergens moet het ja fout gaan lijkt mij dan weer.
ma goed tot de oplossing er is gebruik ik de werkende manier maar.
Toevoeging op 31/05/2012 15:03:57:
Chris,
Als ik alleen <html> laat staan gebeurt er ook niks blijf ik vierkantje houden.
Rashadd, Die optie moet ik even uitzoeken kom ik op terug.
Ja praat me er niet van zeg. Heb al extra test db aangemaakt met andere charset instellingen en ma lopen pulken en kl**en.
Maar ergens moet het ja fout gaan lijkt mij dan weer.
ma goed tot de oplossing er is gebruik ik de werkende manier maar.
Toevoeging op 31/05/2012 15:03:57:
Chris,
Als ik alleen <html> laat staan gebeurt er ook niks blijf ik vierkantje houden.
Rashadd, Die optie moet ik even uitzoeken kom ik op terug.
als die niet lukt kan je even htmlenitities_decode proberen.
Reshadd,
Zowel:
als
Beide optie samen met de utf-8 charseet geven mij een vierkantje met een ?
Zowel:
als
Beide optie samen met de utf-8 charseet geven mij een vierkantje met een ?
heb je hier wat aan?
http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems-in-php/
http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems-in-php/
ik snap hier ook de ballen van...
Alles heb ik op UTF-8 staan (wat de meest uitgebreide charset is volgens mij), php.ini, mysql, editor, website (lokaal) en toch zijn er teveel karakters als vierkantje weergegeven.
Als ik dan alleen mijn charset op mn website verander in ISO-8859-1 doet alles het perfect...
Kortom, iets om hoofdpijn van te krijgen!
Alles heb ik op UTF-8 staan (wat de meest uitgebreide charset is volgens mij), php.ini, mysql, editor, website (lokaal) en toch zijn er teveel karakters als vierkantje weergegeven.
Als ik dan alleen mijn charset op mn website verander in ISO-8859-1 doet alles het perfect...
Kortom, iets om hoofdpijn van te krijgen!
Je moet in UTF-8 wel de &...; tekens gebruiken voor vreemde tekens. Dus niet ë maar ë en niet & maar &.
Maar dit is toch minder gebruiksvriendelijk dan de ISO-8859-1? Of heb ik het helemaal mis...
Want als ik met alle mogelijke toetscombinaties op mijn toetsenbord (dus gewoon toets drukken, SHIFT + toets, ALT + SHIFT + toets) dan heb ik eigenlijk alles wat met een normaal internationaal toetsenbord kan en ik denk zelfs elke westerse europese taal.
Is er geen manier in PHP om elk speciaal karakter om te zetten naar UTF-8?
Want als ik met alle mogelijke toetscombinaties op mijn toetsenbord (dus gewoon toets drukken, SHIFT + toets, ALT + SHIFT + toets) dan heb ik eigenlijk alles wat met een normaal internationaal toetsenbord kan en ik denk zelfs elke westerse europese taal.
Is er geen manier in PHP om elk speciaal karakter om te zetten naar UTF-8?
Als je data uit je DB haalt en die wordt niet goed weer gegeven, kan het wel eens helpen als je mysql_query("SET NAMES UTF8"); in je DB connectie toevoegd.
Ik doe sinds ik tegen dit probleem aangelopen ben standaard.
Ik doe sinds ik tegen dit probleem aangelopen ben standaard.
Mag ik eens vragen hoe die connectie er dan uit komt tezien?
even kort door de bocht copy paste uit wat oude code gehaald
Gewijzigd op 31/05/2012 21:00:09 door Fons Seesink
En daarom dus fout = die; appels met peren vergelijken op regel 2; geen foutafhandeling.
Beter is het om bij dit soort antwoorden alleen de query te geven en niet die hele troep eromheen.
Beter is het om bij dit soort antwoorden alleen de query te geven en niet die hele troep eromheen.
Gewijzigd op 31/05/2012 20:06:21 door Wouter J
Excuus, post aangepast naar alleen de bewuste regel




