mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 07:21 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: Zurück  1, 2, 3  Weiter
Autor Nachricht
Sarky
Threadersteller

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

Antworten mit Zitat Zum Seitenanfang

(a) kommt nicht in Frage, da ich bisher nach wie vor keinen sinnvollen Ersatz für meinen Lieblings-Editor Proton gefunden habe und Proton kein Unicode unterstützt - generell läuft man mit Unicode-Dateien unter Windows sowieso permanent die Gefahr sich die Dateien aus Versehen zu zerschiessen, weil es wieder irgendein Programm nicht unterstützt.

(b) Momentan behelfe ich mir mit utf8_decode() was zumindest teilweise den gewünschten Effekt bringt, aber dennoch Probleme verursacht.

(c) müsste dann in _jedes_ Query gesetzt werden, oder? Das kommt ebenfalls nicht Frage.

Das ist doch alles scheisse... mal sehen was ich da jetzt mache, danke jedenfalls erstmal für die Hilfe.
  View user's profile Private Nachricht senden
karmacoder

Dabei seit: 15.04.2002
Ort: Fürth
Alter: 42
Geschlecht: Männlich
Verfasst Sa 04.02.2006 23:55
Titel

Antworten mit Zitat Zum Seitenanfang

du kannst auch einfach das db schema kopieren auf latin1 ändern und irgendwas wie insert into newdb.table select convert from olddb.table... machen um einmalig deine db wieder auf iso zu bringen
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Sarky
Threadersteller

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Di 14.02.2006 10:44
Titel

Antworten mit Zitat Zum Seitenanfang

Danke für den Tipp!

Ich stehe nun vor dem nächsten Problem: Nachdem ich es erfolgreich geschafft habe das Datenbank-Backup des alten Providers bei dem neuen einzuspielen ohne dabei ein babylonisches Zeichenwirrwarr zu erzeugen (beim Importieren der SQL-Datei einfach "latin1" als Codierung auswählen) lief auch erstmal alles wunderbar - bis ein PHP-Script ein INSERT losgelassen hat. Nun ist alles wieder zerschossen. Interessanterweise ist es jetzt egal welche Codierung ich manuell im Browser festlege, die Sonderzeichen werden immer durch '?' im Firefox dargestellt.

Hat der mir die Datenbank nun einfach konvertiert oder wie darf ich das verstehen?
Anscheinend handhabt PHP 5 intern die Strings wohl nun auch als UTF-8? Wie verhindere ich das am einfachsten?

Solche dämlichen Zeichensatz-Konflikte können einem echt den Spaß an der Sache rauben.
  View user's profile Private Nachricht senden
tacker

Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht: Männlich
Verfasst Di 14.02.2006 10:46
Titel

Antworten mit Zitat Zum Seitenanfang

Sarky hat geschrieben:
Anscheinend handhabt PHP 5 intern die Strings wohl nun auch als UTF-8?

Nein. Erst PHP6 wird das tun.
Der Fehler muss wo anders liegen. Ein einziges Insert kann sich nicht auf alle Daten in der DB auswirken. Evtl. sendest Du den falschen Header oder konvertierts die Strings noch irgendwo.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
karmacoder

Dabei seit: 15.04.2002
Ort: Fürth
Alter: 42
Geschlecht: Männlich
Verfasst Di 14.02.2006 10:47
Titel

Antworten mit Zitat Zum Seitenanfang

es gibt etliche stellen bei dem der charset zu beachten ist.
die datenquelle, die mysql verbindung, die datenbankfelder, die ausgabe.

vll hat dein provider utf8 als default mysql-verbindung?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Sarky
Threadersteller

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Di 14.02.2006 11:07
Titel

Antworten mit Zitat Zum Seitenanfang

tacker hat geschrieben:
Sarky hat geschrieben:
Anscheinend handhabt PHP 5 intern die Strings wohl nun auch als UTF-8?

Nein. Erst PHP6 wird das tun.
Der Fehler muss wo anders liegen. Ein einziges Insert kann sich nicht auf alle Daten in der DB auswirken. Evtl. sendest Du den falschen Header oder konvertierts die Strings noch irgendwo.


Ich sende nirgendwo einen zusätzlichen Header, der ein anderes Encoding verwendet. Interessant ist nur, dass, wenn ich mit meinem PHP 5 testweise in eine Datei einen String mit Sonderzeichen schreibe, dieser beim Auslesen auch als UTF-8 wieder rauskommt.

karmacoder hat geschrieben:
es gibt etliche stellen bei dem der charset zu beachten ist.
die datenquelle, die mysql verbindung, die datenbankfelder, die ausgabe.

vll hat dein provider utf8 als default mysql-verbindung?


Also ich habe jetzt einfach mal folgende Daten zusammengesammelt:

phpMyAdmin
Language: German (de-utf-8)
MySQL-Zeichensatz: UTF-8 Unicode (utf8)
Zeichensatz / Kollation der MySQL-Verbindung: utf8_general_ci
Kollation der Tabellenspalten: latin1_german2_ci

phpinfo()
Apache Environment:
HTTP_ACCEPT_ENCODING: ISO-8859-1; utf-8; q=0.7,*;q=0.7

HTTP Headers Information:
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  View user's profile Private Nachricht senden
karmacoder

Dabei seit: 15.04.2002
Ort: Fürth
Alter: 42
Geschlecht: Männlich
Verfasst Di 14.02.2006 11:11
Titel

Antworten mit Zitat Zum Seitenanfang

Sarky hat geschrieben:

phpMyAdmin
MySQL-Zeichensatz: UTF-8 Unicode (utf8)
Zeichensatz / Kollation der MySQL-Verbindung: utf8_general_ci


phpmyadmin setz per default die verbindung auf utf8, das läst keine rückschlüsse auf die verbindung zu die du in deinem script benuzt.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Sarky
Threadersteller

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Di 14.02.2006 11:12
Titel

Antworten mit Zitat Zum Seitenanfang

Und wie bekomme ich das dann raus?
Mein Script sendet keine zusätzlichen Header für den Zeichensatz oder ändert das Encoding in sonst irgendeiner Weise.
  View user's profile Private Nachricht senden
 
Ä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 Daten in php als Link ausgeben
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  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.