# UTF-8 Zeichen umwandeln in z.B. ISO8859-2



## justuslopas (23. Januar 2004)

Hab da eine Aufgabe bekommen mit der ich noch nicht so richtig vertraut bin. PHP Kenntnisse sind leicht vorhanden, arbeite mit phpMyAdmin.
Gästebuch erstellen(hab ich schon fertig), Datenbank erstellen(hab ich schon fertig), die Einträge vom Gästebuch gelangen automatisch in die Datenbank. 
Nun zur Aufgabe: Die Einträge aus dem Gästebuch sollen mit PHP konvertiert werden in die sogenannten Ländercodes ISO-8859-1, ISO-8859-2, iso-8859-5 usw., und anschließen wieder normal im Browser ausgegeben werden. In der Datenbank müßte dann noch einen Eintrag hinzugefügt werden in dem Die Iso-Zeichen drin stehen. Ich hoffe ihr habt mich verstanden, hier nochmal meine php scripte:

gaestebuch.php
<html>
<head>
<title>Mein G&auml;stebuch</title>
</head>
<body>
<h2>Mein G&auml;stebuch</h2>
<a href="#neuereintrag">Eintrag hinzuf&uuml;gen</a><br><br>
<a href="alle.php">Alle Einträge</a><br><br>

<?php
$db=mysql_connect("localhost","","");
mysql_select_db("TestDB", $db);
$result=mysql_query("SELECT * FROM gaestebuch ORDER BY datum DESC LIMIT 5", $db);
echo "<table border=\"0\">";
for($i=0; $i<mysql_num_rows($result); $i++)
{
$gaestebuch[$i]=mysql_fetch_array($result);
echo "<tr>",
"<td><b>#",
$i+1,
": ",
$gaestebuch[$i]["titel"],
"</b></td>",
"</tr>",
"<tr>",
"<td>",
nl2br($gaestebuch[$i]["eintrag"]),
"</td>",
"</tr>",
"<tr>",
"<td>Eintrag von <b>",
$gaestebuch[$i]["name"],
"</b> am <b>",
$gaestebuch[$i]["datum"],
"</td>",
"</tr>",
"<tr>",
"<td>Email <b>",
$gaestebuch[$i]["EMail"],
//substr($gaestebuch[$i]->datum , 8, 2),
//".",
//substr($gaestebuch[$i]->datum, 5, 2),
//".",
//substr($gaestebuch[$i]->datum, 0, 4),
//" ",
//substr($gaestebuch[$i]->datum, 10),
"</b></td>",
"</tr>",
"<tr><td><hr></td></tr>";
}
echo "</table><br><br>";

?>
<a name="neuereintrag"><h3>Neuer Eintrag:</h3></a>
<form action="einfuegen.php" method="post">
<table border="1">
<tr>
<td><b>Name:</b></td>
<td><input type="text" name="name" maxlength="50"></td>
</tr>
<tr>
<td><b>Email:</b></td>
<td><input type="text" name="email" maxlength="40"></td>
</tr>
<tr>
<td><b>Titel des Eintrages:</b></td>
<td><input type="text" name="titel" maxlength="40"></td>
</tr>
<tr>
<td><b>Eintrag:</b></td>
<td><textarea name="eintrag" cols="30" rows="5"></textarea></td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="Eintragen">
<input type="reset" value="L&ouml;schen">
</td>
</tr>
</table>
</form>
</body>
</html>

einfuegen.php
<html>
<head>
<title>Eintrag hinzuf&uuml;gen</title>
</head>
<body>
<?php

$db=mysql_connect("localhost","","");
mysql_select_db("TestDB", $db);
mysql_query("
INSERT INTO gaestebuch
(datum, name, email, titel, eintrag)
VALUES
(NOW(''), '$name', '$email', '$titel', '$eintrag')
", $db);
if(mysql_affected_rows($db)==1)
echo "Vielen Dank f&uuml;r Ihren Eintrag!<br>",
"<a href=\"gaestebuch.php\">Zur&uuml;ck</a>";
else
echo "Beim Eintragen ist ein Fehler aufgetreten.<br>",
"<a href=\"javascript:history.back();\">Zur&uuml;ck</a>";

?>
</body>
</html>


----------



## Gottox (23. Januar 2004)

http://de2.php.net/manual/de/function.utf8-decode.php

http://de2.php.net/manual/de/function.utf8-encode.php

Kann leider nur ISO-8859-1...


----------



## chibisuke (23. Januar 2004)

Wozu der Aufwand?

Sende einen content-encoding Header für UTF-8 und fertig, spart viel Arbeit.

_Unsere Netiquette hat durchaus einen Sinn_


----------



## justuslopas (26. Januar 2004)

*beispiel*

Danke für die Antworten, trotzdem verstehe ich es nicht so ganz. Kann mir jemand ein Beispiel schreiben, an dem ich sehen kann, wie das funktioniert ? Dachte mit der Funktion mb_convert_encoding wäre es sinnvoll, kann sie aber nicht in meine Scripts einbauen, das schaffe ich nicht.

_Verzeih' den recht direkten Korrekturwahn, aber wir haben eine Netiquette und rote Kästchen beim Erstellen von neuen Posts, die eigentlich nicht zu übersehen sind. Da du jedoch noch ganz frisch bist, gehe ich mal davon aus, du wusstest es einfach nicht besser _


----------

