Da haben wir ja schon das Problem .
Normalerweise gab das noch nie so ein Problem bei mir.
Weil du es normalerweise wohl ganz woanders gemacht hast , etc etc . Von alleine passiert es jedenfals nicht, so schlau sind computer nicht.
Erstens muss du sichestellen das UTF-8 Zeichen in der
Datenbank landen.
Wie mach ich das denn?
Wenn du mit SET Name UTF-8
Die dinger via PHP schreibst sind sie auf jedenfall UTF-8
Dann musst du sicherstellen das du auch die seite mit UTF-8
wieder auslieferst.
Das habe ich ja mit html gemacht im php-Code.
nein, in deim code war der HTML Header ausgezeichnet.
Das hat aber nix damit zu tun wie der Server deine Zeichen sendet.
ASCII 1 BYTE , UTF-8 2 Byte. Dann gibt es noch UTF-8 mit Boom oder Ohne Boom.
Also machen wir das mal Dingfest.
<?php /*! tabelle
\* idx = int(11) , auto\_increment | primary
\* daten = text
\*/
/\*! database vars
\*
\*/
$dbs = array( 'host'=\>'localhost',
'db'=\>'mybase',
'user'=\>'user',
'pass'=\>'pass',
'table'=\>'tabelle' );
/\*! connect to db
\*
\*/
if (!$dblk=mysql\_connect($dbs['host'],$dbs['user'],$dbs['pass'])) {
echo "Keine Datenbank";
exit;
} else {
/\*! Datenbank auswählen
\* und auf UTF-8 kommunikation umstellen.
\*/
mysql\_select\_db($dbs['db']);
mysql\_query('SET NAMES \'utf8\'');
}
// insert db
function insertSQL($sql) {
if ( !$res=mysql\_query($sql)) {
echo "Error -\> ".$sql;
exit;
}
return mysql\_insert\_id();
}
// get single entry from db
function getEntrySQL($sql) {
$aEntry = array();
if ( !$res=mysql\_query($sql)) {
echo "Error -\> ".$sql;
exit;
}
while ($row = mysql\_fetch\_array($res,MYSQL\_ASSOC)) {
$aEntry=$row;
}
return $aEntry;
}
$therow=array('idx'=\>"",'daten'=\>"");
if (isset($\_POST['daten'])) {
$sql = "INSERT INTO ".$db['table']." VALUES('','".$\_POST['daten']."')";
$index=insertSQL($sql);
$sql = "SELECT idx,daten FROM ".$db['table']." WHERE idx=".$index;
$therow = getEntrySQL($sql);
}
header("Content-Type: text/html; charset=utf-8");
?\>
Test
#daten {width:500px; height:300px;}
<?php echo $therow['daten']; ?>
Daten:
Eintragen
<?php /* ende */
?\>
ungetestet ...
.. übrigens wenn du was in php dateien direkt schreibst
also z.b. INSERT INTO ... VALUE('äüöß');
müssen das auch eine UFT-8 dateien sein sonst ist das ü kein ü in utf-8 :smile:
Und ein Editor der das UTF-8 Format beherscht ist Pflicht.