Hallo php-ers, ik heb een vraag.
Ik kan stukken tekst invoeren en uitlezen uit mijn database, dat is niet echt boeiend verder maar mijn probleem is dat als ik bv het woord creëer gebruik dat er dan i.p.v. ë een raar teken komt te staan. Hoe kan ik dit oplossen, is dit een database probleem, moet ik dit in instellingen wijzigen van mijn tabel in de database?
wie kan mij hier mee helpen,
BVD remon
Tekens als ë moet je omzetten naar de juiste html entities. Je kunt dit bijvoorbeeld zo doen:

<?php
    while ($row = mysql_fetch_assoc ($res)) {
        echo htmlentities ($row['tekst']);
    }
?>
Dit heeft waarschijnlijk eerder te maken met encoding.

Gebruik je in je database UTF-8 of Latin ...

Wat defineer je op je pagina als encoding, UTF-8 of ISO-899 huppeldepup.

Als je beiden hetzelfde houd, advies: gebruikt UTF-8 komt het altijd goed.

Het kan zijn dat wanneer je bijvoorbeeld met phpMyAdmin in je database kijkt dat je alsnog rare tekens ziet dan, maar dat komt dan waarschijnlijk omdat de html entity type in de HTML van phpMyAdmin op ISO-xxx staat.
Ok, heb allen even geen idee waar ik dit moet doen, moet dit dan bij het invoeren van de tekst en/of bij het weergeven.

Dit is mijn script om tekst in te voeren, waar zou ik de aanpassing moeten doen?
<body>

<form action=tekst_list.php method=post>

<table border="0" cellspacing="1" cellpadding="0">
<tr>
<td>Titel:</td>
<td>
<input type="text" name="tekst_header" size="50" maxlength="120">
</td>
</tr>
<tr>
<td>Datum/tijd:</td>
<td>
<input type="text" name="tekst_datetime" value="<?php echo date("Y-m-d") ?>" size="19" maxlength="19">
</td>
</tr>
<tr>
<td>Inhoud:</td>
<td>
<textarea name="tekst_main" rows="6" cols="45"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="action" value="insert">
<input type="submit" name="Submit" value="OK">
</td>
</tr>
</table>

</form>

</body>
En dan heb ik natuurlijk nog het sript om de tekst weer te geven:
$sql= "SELECT * FROM tekst ORDER BY tekst_datetime DESC";
$res= mysql_query($sql);

?>
<center><font size="7">Aanbiedingen!</font></center><br><br>
<?

while($tekst = mysql_fetch_array($res)){

//Opmaak van datum
$unixtime = strtotime($tekst['tekst_datetime']);

?>

<table width="400" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td class="top">
<b>&nbsp;<?php echo $tekst['tekst_header'] ?></b>
</td>
<!--<td class="top" align="right">
<? echo date("d-m-Y",$unixtime) ?>&nbsp;
</td>-->
</tr>
<tr>
<td class="bottom" colspan="2">
<?php echo $tekst['tekst_main'] ?>
</td>
</tr>
</table>
ik hoop dat ik hiermee straks geholpen ben.
BVD remon
gebruikte dus latin.. en staat nu op UTF-8_bin.
In de database staat de tekst wel goed, alleen de uitvoer op het scherm nog niet.
eerlijk gezegd weet ik niet wat je bedoeld met: Wat defineer je op je pagina als encoding, UTF-8 of ISO-899 huppeldepup

ik moet het nu in iedergeval dus zoeken in de uitvoer.
inmiddels gelukt had staan: mysql_fetch_array dit dus veranderd in ..assoc

Bedankt voor de hulp
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

In de <head>

Reageren