Autor |
Nachricht |
Sarky
Threadersteller
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
Verfasst Fr 03.02.2006 21:39
Titel [PHP 5 / MySQL 4] ISO-8859-1 statt UTF-8 |
|
|
Hallo!
Ich bin mit einigen meiner Internetseiten vor kurzem auf einen neuen Server umgezogen und stehe nun vor einem Problem, was den Zeichensatz angeht. Dieses ist wahrscheinlich relativ einfach zu lösen, mir fehlt jedoch die Erfahrung mit Zeichensätzen um selber darauf zu kommen:
Mein alter Provider verwendete PHP 4.3.x und MySQL 3.x, meine Seiten sind ISO-8859-1 codiert, haben ganz normal die Datensätze per Formular reingebraten und sie kamen auch brav als ISO wieder raus. Auf meinem neuen Provider mit PHP 5.1.x und MySQL 4.x führt das nun zu nervigen Konflikten, so dass ständig die Texte aus welchen Gründen auch immer UTF-8 codiert werden und mir als Resultat ständig irgendwelche Sonderzeichen den Text zerstören.
Nun möchte ich nicht komplett auf UTF-8 umsteigen, sondern alles wieder ganz gewöhnlich und stinknormal als ISO-8859-1 haben, und zwar ohne, dass vom System ständig mit Unicode um sich geschmissen wird.
Wie erreiche ich das am einfachsten?
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Fr 03.02.2006 22:37
Titel
|
|
|
Code: | header('Content-type: text/html; charset=ISO-8859-1', true); |
|
|
|
|
|
Anzeige
|
|
|
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Sa 04.02.2006 00:00
Titel
|
|
|
stell halt dein sql auf latin1_german_ci ? ich mein .. schaffen andere
ja auch
|
|
|
|
|
Sarky
Threadersteller
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
Verfasst Sa 04.02.2006 00:48
Titel
|
|
|
dastef hat geschrieben: | stell halt dein sql auf latin1_german_ci ? ich mein .. schaffen andere
ja auch |
Mein SQL? Ich mein ... kann man einem auch so erklären, dass man gleich versteht wo und wie man das am besten einstellt - schaffen andere ja auch
Meinst Du unter Zeichensatz / Kollation in phpMyAdmin?
Für den Punkt unter "MySQL-Zeichensatz" gibt es zudem keine Auswahlmöglichkeit.
Zuletzt bearbeitet von Sarky am Sa 04.02.2006 00:50, insgesamt 1-mal bearbeitet
|
|
|
|
|
Eistee
Administrator
Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht:
|
Verfasst Sa 04.02.2006 13:31
Titel
|
|
|
Was genau ist bei dir plötzlich utf8? Das encoding deiner Seiten oder enthält deine (nach wie vor ISO codierte) Seite plötzlich Sonderzeichen (UTF8)?
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Sa 04.02.2006 13:41
Titel
|
|
|
Wahrscheinlich liegt es tatsächlich am Zeichensatz, den der Browser meint zu erkennen. Hier einfach den korrekten Header setzen und vielleicht noch entsprechende Metadaten im HTML-Header/Doctype setzten.
Ansonsten darauf achten, dass, falls du nen Texteditor benutzt, dieser auch ascii erzeugt, und wie bereits geschrieben mal die encoding-einstellungen des DB-Schemas checken. Das ganze solltest du allerdings nicht mit der Sortierreihenfolge (kollation) verwechseln, das hat mit der Kodierung nichts zu tun. Jede Kodierung hat ne Standardsortierung, da brauchste dich in der Regel nicht drum zu kümmern
|
|
|
|
|
Sarky
Threadersteller
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
Verfasst Sa 04.02.2006 13:47
Titel
|
|
|
Eistee hat geschrieben: | Was genau ist bei dir plötzlich utf8? Das encoding deiner Seiten oder enthält deine (nach wie vor ISO codierte) Seite plötzlich Sonderzeichen (UTF8)? |
Die Teile meiner Seite, die aus der Datenbank kommen, sind UTF-8 codiert.
XSchinkenX hat geschrieben: | Wahrscheinlich liegt es tatsächlich am Zeichensatz, den der Browser meint zu erkennen. Hier einfach den korrekten Header setzen und vielleicht noch entsprechende Metadaten im HTML-Header/Doctype setzten.
Ansonsten darauf achten, dass, falls du nen Texteditor benutzt, dieser auch ascii erzeugt, und wie bereits geschrieben mal die encoding-einstellungen des DB-Schemas checken. Das ganze solltest du allerdings nicht mit der Sortierreihenfolge (kollation) verwechseln, das hat mit der Kodierung nichts zu tun. Jede Kodierung hat ne Standardsortierung, da brauchste dich in der Regel nicht drum zu kümmern |
Im Meta-Tag steht es bereits auf ISO-8859-1, ich werde das mit dem Header, so wie tacker es auch schon geschrieben hat, mal ausprobieren.
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Sa 04.02.2006 14:19
Titel
|
|
|
Wenn die Daten aus der DB UTF-8 sind und die Seitze selbst (HTML-Code) ISO-8859-* dann wäre eine saubere Lösung
a) alle HTML-Dateien nach UTF-8 zu konvertieren (z.B. mit recode untere Linux) oder
b) alle ausgaben aus der Datenbank nach ISO-8859-* zu konvertieren (mit mb_convert_encoding)
c) wie b) nur im Query selbst mit CONVERT() Code: | SELECT CONVERT('Müller' USING latin1); |
wobei a) IMHO langfristig der beste Ansatz ist.
Zuletzt bearbeitet von tacker am Sa 04.02.2006 14:24, insgesamt 2-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
utf-8 vs iso-8859-1 ?
Charset 8859-1 - Probleme mit Umlauten
[PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
[MySql]Lost connection to MySQL server during query
[PHP / MySQL] MySQL-Funktion gesucht: letzteÄnderungTabelle
|
|