• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

charset phpMyAdmin (SQL) umstellen

th_wolfgang

New member
Hallo,
teste gerade eine Webseite, diese streicht mir allerdings permanent Umlaute in meinem Warenkorb des Webshops weg. Die Seite ist auf charset=ISO-8859-1 / Latin1. Komisch ist, dass in den Spalten unter phpmyAdmin alles auf UTF-8 eingestellt ist. Wie kann ich dies ändern? Geht dies nur für das Default-Character-Set, nicht für schon bestehende Spalten? Wenn ich z.B. auf PHP 5.2 umstelle und den SQL-Server weglasse (PHP5.2 hat einen SQLlite mit dabei) funktioniert alles, aber nicht im SQL Server, da fehlen Zeichen nach Umlauten, diese werden komplett weggeschnitten.

ODER:

Wie kann ich dies definitive auf ISO-8859-1 umstellen? (Habe hier ein Beispiel verfolgt, dies geht allerdings nicht richtig. http://websitebiz.de/siquando-web-u...tudio/112-neue-g-stebuch-version-1-08-php5-4/

PHP:
$repl[] = strstr($v, 'selected') || strstr($v, 'checked') ? $v : (strstr($v, '<noentities>') ? (str_replace('<noentities>', '', $v)) : htmlentities($v));

Danke & LG
Wolf
 
Zuletzt bearbeitet von einem Moderator:
Hi Wolf,

es gibt drei Stellen, in denen Du auf das Charset zu achten hast:

1. Datenbank- und Spaltenkollationen (ab Werk "latin1_swedish_ci"; aufgrund Ursprung)
2. Verbindung an Deine Datenbank (Connect via mysqli/PDO - der Befehl set_charset() ist wichtig!; lass das mit "set names utf8"!!!)
3. sämtliche Dateien (PHP, JavaScript, CSS, ...) gehören ins Dateiformat "utf8" (bekannte Editoren können das für Dich fehlerfrei und problemlos konvertieren)

Häufigster Irrglaube: Die META-Angabe in der Seite regelt das.

Bekommst Du also "merkwürdige" Verstümmelungen wie beschrieben, würde ich mit Dir um bares Geld wetten, dass Du die drei einfachen Regeln von oben an mind. einer Stelle gebrochen hast.

Nun bist Du vielleicht Masochist und stehst auf Stress beim Arbeiten mit sowas. Nun gut - soll es geben. :D Mischbetrieb ist immer mit Risiko verbunden - häufig unterscheiden sich auch noch Windows/Linux (hab da so meine Stress-Erfahrungen mit InnoDB). Wenn Du aber nun diesen Mischbetrieb willst, kommst Du um Enkodierungen bei Transport und Dekodierungen bei Annahme nicht drumherum. Hierzu gibt es einschlägige Befehle, die Dir helfen (Versand ab Client, Annahme auf Server)! Aber ob man sich das antun will ... ohaaaa. :D

Viel Erfolg.
 
Zurück
Oben