Sonderzeichen in MySQL gehen irgendwie nicht :(

Den ganzen encode- und decode-Kram kannst Du umgehn, indem Deine HTML-Dokumente in UTF-8 gespeichert sind und Du im header die text-encoding auf UTF-8 stellst. Ersteres ist aber noch wichtiger.

Zweiteres wäre ja so, wie wenn in einem Mandarin-chinesischem Dokument die Information steht, dass es eben in dieser Sprache geschrieben ist, die Dir aber leider nix bringt, da Du die Sprache gar nicht lesen kannst.

@2nd: Das htmlencode() einfach dann bei der Ausgabe machen oder durch richtige Kodierung wie oben beschrieben gar nicht mehr brauchen, dann bleibst Du frei.
 
Danke Jakob. Habe gerade an einem Projekt rumprobiert und das mit dem htmlentities() während der Ausgabe aus der Datenbank funktioniert gut. Ich lass dann auch alles im Original in der DB und wandel die Zeichen erst nach dem Query vor der Ausgabe in HTML.

2nd
 
Mal eine andere Frage: Wenn ich eine MySQL-DAtenbank über Camino vom meiner Website runterziehe, passiert mir ähnliches ich habe auch Wurzelzeichen ohne Ende anstatt ä,ö,ü.

Will ich sie in meine lokale MySQL-Datenbank ziehen, fehlen dementsprechend die Umlaute in PHPMyAdmin.
Exportiere ich über irgendeinen Windowsrechner, sind alle Umlaute da. Sende ich dann das gezippte Dumpfile an den Mac, sind sie wieder weg...
 
Erstmal musst Du rausfinden, in welcher Kodierung er das Dokument speichert.

Öffne es mal in TextWrangler und wähle dort unter File -> Reopen Using Encoding… die verschiedenen Kodierungen aus, bis die Umlaute da sind.
 
Hallo,

Die meisten MySQL Datenbanken bei Webspace Anbietern sind in Latin1 angelegt während die Mac OS MySQL Datenbank als Standard im UTF 8 Zeichensatz arbeitet. Bei phpMyAdmin kannst du auf der Frontseite (wenn du die config.inc.php entsprechend eingestellt hast) den Zeichensatz der MySQL Verbindung einstellen und dann geht es. Auf meiner Firmenwebseite gibt es ein Tutorial für phpMyAdmin 2.8.0.3. Es kann sein das es sich bei anderen Versionsnummern unterscheidet. Ich schicke dir den Link als PN weil ich ja nicht gegen die Forenregeln verstoßen möchte.

Gruß Benni
 
Hallo Benni,

eine Zeitlang ging es ganz gut mit Deiner Anleitung. Leider hae ich jetzt schon wieder das gleiche Problem. Ich habe die selben Collations eingestellt. Aber wenn ich die Web-DB heruntergeladen habe, ist wieder voller Sonderzeichen bei den Umlauten.
 
Nach oben schieb!:eek:
 
Es sind insgesammt drei Faktoren zu testen:

(1) Der Codierung mit die der Web-Server Dokumente ausliefert
(2) Die Collation Deiner DB
(3) Die Codierung der PHP-Seiten

Natürlich sollte alles drei Übereinstimmen, sonst wird es immer Probleme geben!
 
@wegus: Die Collation (engl. Sortierung) hat doch nur mit eben dieser zu tun und ändert nichts an der Ein- und Ausgabe bzw. Zeichenkodierung. Das einzige, was bei falscher Collation passieren kann ist, dass er bei Abfragen falsch sortiert.

@Thomas K: Wegus hat Recht, dass alles in der gleichen Kodierung sein sollte. Dieses „alles“ ist:
  1. Header vom Server (einstellbar per PHP oder in der Server-Konfiguration)
  2. Encoding des Dokuments (einstellbar im Editierprogramm)
  3. <meta>-Tag des Dokuments (in HTML einstellbar, optional)
  4. Encoding der Datenbank (in phpMyAdmin einstellbar)
  5. Collation der Datenbank (in phpMyAdmin einstellbar, optional)
 
Jakob schrieb:
Die Collation (engl. Sortierung) hat doch nur mit eben dieser zu tun

schon, nur führt das dann zur nächsten Anfrage ;)
 
Für Dumps zwischen lokalem Rechner und einem Produktivserver/WebPack "draussen" kann ich

www.mysqldumper.de

empfehlen. Damit gibt es kein Sonderzeichenchaos mehr. Achtung, nicht die Beta-Version (oder Alpha?) benutzen, die letzte Stable macht alles mit den Zeichen richtig.

Jakob schrieb:
Header vom Server (einstellbar per PHP oder in der Server-Konfiguration)
Encoding des Dokuments (einstellbar im Editierprogramm)
<meta>-Tag des Dokuments (in HTML einstellbar, optional)
Encoding der Datenbank (in phpMyAdmin einstellbar)
Collation der Datenbank (in phpMyAdmin einstellbar, optional)

Zur Ergänzung: Will ich UTF-8 in der Datenbank haben, mache ich nach dem Connect zur DB folgenden Query:

Code:
mysql_query("SET NAMES 'utf8'");

Damit stellt man die Verbindung auf UTF-8 und die Daten werden richtig abgelegt.

2nd
 
2ndreality schrieb:
Zur Ergänzung: Will ich UTF-8 in der Datenbank haben, mache ich nach dem Connect zur DB folgenden Query:

Code:
mysql_query("SET NAMES 'utf8'");

Damit stellt man die Verbindung auf UTF-8 und die Daten werden richtig abgelegt.

2nd

Genau darauf wollte ich mit meinem Link hinweisen,
hat bei mir alle Probleme mit Sonderzeichen gelöst.
 
www.mysqldumper.de! Das war es! Jetzt klappts auch mit dem Lumpi! DANKE! Problem gelöst! :clap:
 
Zurück
Oben Unten