login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Euro symbool wordt niet goed weergegeven (Opgelost)

Offline philipz - 23/02/2007 13:08
Avatar van philipzNieuw lid Beste,

In mijn PHP code wordt een MySQL DB geraadpleegd, en de return van de query is de prijs van een bepaald produkt.
De browser geeft het currency-symbool niet correct weer...
Dit staat er in de DB:
DSL Office - 1024/1024 - All zones (Monthly Cost:408€)
Dit komt er in de webbrowser te staan:
DSL Office - 1024/1024 - All zones (Monthly Cost:408€)

Dit staat er in mijn header als charset:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >

Iemand een idee waar het misloopt?

Thx,

Philip

9 antwoorden

Gesponsorde links
Offline marten - 23/02/2007 13:22
Avatar van marten Beheerder Wanneer je gegevens in je database zet moet je deze altijd door htmlspecialchars() halen. Deze zet bepaalde tekens om naar hun html code. Bijvoorbeeld & word &amp;. Ik weet niet cker of deze ook de euro omzet maar de code daarvan is &euro; Dit kan je dan in je database vervangen zodat het wel goed word weergegeven.
Offline Thomas - 23/02/2007 13:54 (laatste wijziging 23/02/2007 13:54)
Avatar van Thomas Moderator
Citaat:
Wanneer je gegevens in je database zet moet je deze altijd door htmlspecialchars() halen.
Want?

Citaat:
Ik weet niet cker of deze ook de euro omzet maar de code daarvan is &euro; Dit kan je dan in je database vervangen zodat het wel goed word weergegeven.
Waarschijnlijk niet.

Het probleem waarschijnlijk is dat je ASCII-karakter 128 (€) invoert. UTF-8 kent deze niet. Gebruik &euro;. htmlspecialchars() zet alleen karakters om die een speciale betekenis hebben binnen HTML (&, >, < , ', ").
Offline philipz - 23/02/2007 14:04
Avatar van philipz Nieuw lid Wel, de personen die de DB invullen zetten er gewoon een euro-symbool in. Ze vullen de data in op meerdere plaatsen; is een beetje vreemd om hen te gaan vragen of ze nu &euro kunnen gebruiken als currency symbool...
Zijn er geen andere oplossingen?
Offline Thomas - 23/02/2007 14:16
Avatar van Thomas Moderator str_replace(chr(128), "&euro;", $tekst)

?
Offline philipz - 23/02/2007 14:31
Avatar van philipz Nieuw lid Hmmm waar zou ik dit moeten invullen?

Mijn query is devolgende:
$quer=mysql_query("SELECT DISTINCT subcategory FROM subcategory where cat_id=$cat order by subcategory");
}else{$quer=mysql_query("SELECT DISTINCT subcategory FROM subcategory order by subcategory"); }

En de dropdown list met de fout weergegeven € is deze (table "subcategory"):
echo "<select name='subcat'><option value=''>Choose DSL type</option>";
while($noticia = mysql_fetch_array($quer)) {
echo "<option value='$noticia[subcategory]'>$noticia[subcategory]</option>";

Excuse me my ignorance 
Offline Ultimatum - 23/02/2007 14:32
Avatar van Ultimatum PHP expert je kan toch ook gewoon de euro teken niet in de database zetten, maar dan zet je hem er in je code voor als je het getal uit de database sloopt
Offline philipz - 23/02/2007 14:46
Avatar van philipz Nieuw lid
Citaat:
PHP beginner
je kan toch ook gewoon de euro teken niet in de database zetten, maar dan zet je hem er in je code voor als je het getal uit de database sloopt


Het probleem is dat ik die database niet beheer en ook geen controle heb over de inhoud. Maw, hetgeen er staat, staat er.
Offline Thomas - 23/02/2007 16:26
Avatar van Thomas Moderator Aanpassen bij afdrukken dan.

i.p.v.
echo $tekst_uit_database;

doe je
echo str_replace(chr(128), "&euro;", $tekst_uit_database);

en zo ook eventueel voor andere karakters / strings die je wilt vervangen.
Offline philipz - 23/02/2007 17:09
Avatar van philipz Nieuw lid
Citaat:
Aanpassen bij afdrukken dan.

i.p.v.
echo $tekst_uit_database;

doe je
echo str_replace(chr(128), "&euro;", $tekst_uit_database);

en zo ook eventueel voor andere karakters / strings die je wilt vervangen.


Perfect, thanks!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s