mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 21:09 Benutzername: Passwort: Auto-Login

Thema: [PHP 5 / MySQL 4] ISO-8859-1 statt UTF-8 vom 03.02.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP 5 / MySQL 4] ISO-8859-1 statt UTF-8
Seite: 1, 2, 3  Weiter
Autor Nachricht
Sarky
Threadersteller

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Fr 03.02.2006 21:39
Titel

[PHP 5 / MySQL 4] ISO-8859-1 statt UTF-8

Antworten mit Zitat Zum Seitenanfang

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?
  View user's profile Private Nachricht senden
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst Fr 03.02.2006 22:37
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
header('Content-type: text/html; charset=ISO-8859-1', true);
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 04.02.2006 00:00
Titel

Antworten mit Zitat Zum Seitenanfang

stell halt dein sql auf latin1_german_ci ? ich mein .. schaffen andere
ja auch *zwinker*
  View user's profile Private Nachricht senden
Sarky
Threadersteller

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Sa 04.02.2006 00:48
Titel

Antworten mit Zitat Zum Seitenanfang

dastef hat geschrieben:
stell halt dein sql auf latin1_german_ci ? ich mein .. schaffen andere
ja auch *zwinker*


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 *zwinker*

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
  View user's profile Private Nachricht senden
Eistee
Administrator

Dabei seit: 31.10.2001
Ort: Grimma
Alter: 45
Geschlecht: Männlich
Verfasst Sa 04.02.2006 13:31
Titel

Antworten mit Zitat Zum Seitenanfang

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)?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Account gelöscht


Ort: -
Alter: -
Verfasst Sa 04.02.2006 13:41
Titel

Antworten mit Zitat Zum Seitenanfang

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: Männlich
Verfasst Sa 04.02.2006 13:47
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst Sa 04.02.2006 14:19
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.