Umlaute werden falsch in DB geschrieben

Homer

Grünschnabel
Hallo zusammen,
ich wies, dass jetzt wieder einige sagen: Lesen hilft ! :-) Aber ich bekommen folgendes Problem nicht in den Griff. Vielleicht habe ich etwas übersehen.

PHP:
<?php
$hostname_init = "localhost";
$database_init = "cms";
$username_init = "root";
$password_init = "";
$linkid = mysql_connect($hostname_init, $username_init, $password_init,E_USER_ERROR); 
mysql_select_db($database_init,$linkid);

$str = utf8_encode("öööööööööööööööööööööö");

$query1 = "INSERT into cms_content (ident, content) VALUES (0,'$str')";
$result1 = mysql_query($query1);
if (!$result1){
	die("Fehler");
}
?>

Dabei wird folgendes in die DB geschieben
öööööööööööööööööööööö

Die Kollation der Tabelle ist auf utf8_unicode_ci eingestellt

Ich bin mit meinem Latein am Ende.
Hat jemand einen konstruktiven Vorschlag?

Vielen Dank im Voraus

H.
 
Stimmt denn der Zeichensatz bei der Ausgabe? Ich schätze Mal, dass du den "komischen" Wert aus PHPMyAdmin hast, richtig? Ich weiß nicht, ob dort UTF-8 als Zeichensatz für den Browser angegeben wird.
 
Oh Mann,
Du hast recht. In der DB (phpmyadmin) stehen diese Hieroglyphen.
In der aushabe, kommen die Buchstaben an, wie sie sollen.
In diese Richtung habe ich nicht getestet. :confused:
Aber wie bekomme ich es hin, dass in phpmyadmin die daten korrekt angezeigt werden :-)
 
Das habe ich auch schon prpbiert, geht aber auch nicht.
Muss ( sollte ) man auf allen Seiten auch Unterseiten des Projekts einen Header einbauen ? :confused:
en tut´s doch auch so (generell meine ich) :D
 
Das habe ich auch schon prpbiert, geht aber auch nicht.
Muss ( sollte ) man auf allen Seiten auch Unterseiten des Projekts einen Header einbauen ? :confused:
en tut´s doch auch so (generell meine ich) :D

Ich weiss ja nicht, wie das Script aufgebaut ist, wenn es ein CMS (oder ähnliches) ist, was ein Header/Footer automatisch mit einbaut, brauchst du es nur 1 x ....weenn es allerdings einzelne PHP/HTML-Dateien sind, muss wohl in jede Datei ein Header rein......

Du kannst es natürlich auch mal mit (meiner letzten) Möglichkeit versuchen ;)

PHP:
	protected function arrays_chars()
	{
		/**
		 * chr 228 = ae		(umlaut)
		 * chr 246 = oe		(umlaut)
		 * chr 252 = ue		(umlaut)
		 * chr 196 = AE		(umlaut)
		 * chr 214 = OE		(umlaut)
		 * chr 220 = UE		(umlaut)
		 * chr 223 = SS		(umlaut)
		 * chr 128 = euro	(euro-symbol)
		 * chr  34 = "      (anfuehrungsstrich)
		 * chr  60 = <      (eckige klammmer auf)
		 * chr  62 = >		(eckige klammer zu)
		 */
		$this->arr_iso = array(chr(228), chr(246), chr(252), chr(196), chr(214), chr(220), chr(223), chr(128));
		$this->arr_uni = array('&auml;', '&ouml;', '&uuml;', '&Auml;', '&Ouml;', '&Uuml;', '&szlig;', '&euro;');
	}
	/**
	 * umlaute im iso-8859-15/1 format zum ersetzen in unicode
	 */
	public function iso2uni($string)
	{
		self::arrays_chars();
		return str_replace ($this->arr_iso, $this->arr_uni, $string);
	}
	/**
	 * umlaute im unicode-format, damit diese auch vernuenftig im iso-8859-1/15 angezeigt werden koennen
	 */
	public function uni2iso($string)
	{
		self::arrays_chars();
		return str_replace ($this->arr_uni, $this->arr_iso, $string);
	}
 
Zurück