Vor der Verbidnung prüfe ich auf UTf-8 und wenn nicht setze ich es.
PHP-Code:
// Verbindungsaufbau
$connect = mysql_connect($mysql_host, $mysql_user, $mysql_pass) OR die('Verbindung fehlgeschlagen!');
// Charset wird auf UTF-8 gesetzt
if(!mysql_set_charset('utf8', $connect))
{
$charset_utf8 = 0;
mysql_query('SET NAMES utf8', $connect);
}
else
{
$charset_utf8 = 1;
mysql_query('SET NAMES utf8', $connect);
}
// Falls Charset nicht gesetzt werden konnte ein Fehlerprotokoll anlegen
if(!$charset_utf8 == 1)
{
$msg = date('d.m.Y H:m:s') . ": MySQL-Charset konnte nicht auf UTF8 gestellt werden \n";
error_log($msg, 3, 'logs/error.log');
}
// Falls Verbindung nicht möglich Fehlermeldung ausgeben
if(!$connect)
{
die(mysql_connect_error());
}
// Datenbank auswählen und verbinden
$database = mysql_select_db($mysql_data, $connect) OR die('Konnte keine Datenbank auswählen!');
// Bei nichtauswahl der Datebank oder Fehler abbruch und schließen
if(!$database)
{
die(mysql_error());
mysql_close($connect);
exit;
}
Das ganze wird aus einer Include schon geladen wo ein HTML headr in UTF 8 schon vorhanden ist.
Binde ich vor require_once den header ein geht nix mehr.
PHP-Code:
header('Content-Type: application/xhtml+xml; charset: utf-8');
Man sieht nur das Icon wie es sucht und sucht... aber es passiert nix.
Das mit dem
PHP-Code:
echo utf8_decode("$cname|<img src='$url$cwappen'/>|$cid\n");
meinte ich oben schon.
Lasse ich decode weg, funktioniert es im Browser 1, aber in Browser 2 nicht. Schreibe ich decode, funktioniert es in Broswer 2 aber Browser 1 nicht.
BILD 1:
http://s14.directupload.net/images/130124/uo2okohr.png (FireFox)
Bild 2:
http://s1.directupload.net/images/130124/jmk2d8th.png (Chrome)
In scr sind keine Umlaute vorhanden. Ist ja schließlich ein Pfad und der wird richtig angezeigt.
Nur die variable >> $cname zeigt unterschiedlich vom Browser keine Umlaute an.