Amlaute-Problematik bei neuer XAMPP-Version

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Amlaute-Problematik bei neuer XAMPP-Version

Postby uling2 » 04. August 2016 10:17

Ich habe endlich nach ein paar Jahren XAMPP auf einem Rechner aktualisiert, genauer von v.3.3.1 vom Mai 2013
nach v.3.2.2 vom November 2015, jeweils die portablen Versionen, so kann ich auch schnell zwischen beiden hin und her schalten.

Ich habe nun folgendes Phänomen:
Alle Texte, die aus der mySQL-Datenbank kommen, sind richtig codiert (also die Umlaute), alle Texte, die aus PHP kommen (aus den Sprachdateien oder z.B. bei einfacher Ausgabe via echo) haben das Fragezeichen im schwarzen Karo.
Wechsel ich XAMPP wieder zur alten Version, ist alles richtig. Die Installationen auf verschiedensten Kundenservern ist auch ok.

Ich möchte nun die neue XAMPP-Installation so anpassen, dass sie wie die alte läuft (und auch wie alle Webserver draußen), und ich nicht ein komplettes CMS neuprogrammieren muss.
In einem anderen Forum wurde mir nämlich geraten, alles auf UTF-8 umzuschreiben. Das ist ein riesiger Aufwand, da ja auch Funktionen, wie substr() ersetzt werden müssten.

Wo liegt der Unterschied in den beiden XAMPP-Versionen, die zu dem Phänomen führen?

Vielen Dank,
Uli
uling2
 
Posts: 9
Joined: 20. March 2007 16:52
Operating System: Windows 10 (64 Bit)

Re: Amlaute-Problematik bei neuer XAMPP-Version

Postby Altrea » 04. August 2016 21:35

Hallo,

zuerst einmal, es gibt keine XAMPP Version 3.2.1 oder 3.2.2. Das was du meinst sind Versionsnummern von der Komponente XAMPP control panel.
Die richtige Versionsnummer findest du zum Beispiel in der readme_de.txt.

Die Ursache für dein Problem ist die neue Einstellung für den Standardzeichensatz (default_charset) in deiner PHP Einstellung. Seit PHP 5.6.X setzt PHP diese Einstellung standardmäßig auf UTF-8, vorher war der Wert leer und hat damit die Entscheidung zum Großteil dem Ausführenden Browser überlassen. Es wird auch empfohlen einen Standardzeichensatz zu setzen.

Mögliche Lösungen:
  • Ändern der Einstellung default_charset in der php.ini
  • Ändern der Einstellung default_charset per .htaccess
  • der Einstellung default_charset per PHP Befehl ini_set

Zu guter Letzt, wenn du das Verhalten von < PHP 5.6 erzwingen möchtest kannst du in der php.ini die Einstellung default_charset auf einen leeren String ändern. Ich würde es nicht empfehlen, es ist immer besser eine Zeichenkodierung, egal ob nun ISO-8859-1 oder UTF-8, konsequent durchzuziehen und einen expliziten charset im Header zu übergeben. Bestimmte Angriffsszenarien machen sich einen schwammigen Zeichenkodierungsumgang zu nutzen.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Amlaute-Problematik bei neuer XAMPP-Version

Postby uling2 » 04. August 2016 22:56

Hi!
Wow, DAS ist doch mal eine Antwort!
Vielen Dank, ich werde das gleich morgen früh testen.
Vielen Dank,
Uli
uling2
 
Posts: 9
Joined: 20. March 2007 16:52
Operating System: Windows 10 (64 Bit)

Re: Amlaute-Problematik bei neuer XAMPP-Version

Postby uling2 » 05. August 2016 10:52

Hallo Altrea,

nochmal danke für die ausführliche Antwort.
Leider komme ich nicht wirklich weiter. Stelle ich einen Parameter um, entstehen jeweils an anderer Stelle andere Fehler.
Bei default_charset = "ISO-8859-1" sind sowohl mySQL also auch PHP-Texte falsch (ä= ä)
Bei irgend einer anderen Kombi (leider weiß ich sie nicht mehr, ist auch eher egal), wurden HTML-Codes, wie &shy; nicht richtig umgesetzt ...

Altrea wrote:wenn du das Verhalten von < PHP 5.6 erzwingen möchtest kannst du in der php.ini die Einstellung default_charset auf einen leeren String ändern.

Leider nicht. Es bleiben die Karo-Fragezeichen in einigen Teilen.

Ich will gar nicht bestreiten, dass eventuell in meinen Dateien, sowohl PHP, wie auch mySQL und HTML einiges durcheinander ist. Aber warum fliegt mir das auf den verschiedenen Kundenservern nicht um die Ohren?
Ich will nur eine Arbeitsumgebung schaffen, die identisch mit den Servern draußen ist.

Und meine zweite Frage ist: Gesetzt den Fall, ich stelle alles auf UTF-8 um (wie oftmals empfohlen), dann funktionieren Befehle wie substr() und wer weiß wieviel andere ja nicht mehr. Ich bin da doch sicher nicht der Einzige, der ein solches Problem hat. Muss man denn tatsächlich sein gesamtes CMS in die Tonne kloppen, weil es durch Verwendung üblicher Befehle unbrauchbar geworden ist?

Beste Grüße,
Uli
uling2
 
Posts: 9
Joined: 20. March 2007 16:52
Operating System: Windows 10 (64 Bit)

Re: Amlaute-Problematik bei neuer XAMPP-Version

Postby Nobbie » 05. August 2016 11:15

uling2 wrote:Und meine zweite Frage ist: Gesetzt den Fall, ich stelle alles auf UTF-8 um (wie oftmals empfohlen), dann funktionieren Befehle wie substr() und wer weiß wieviel andere ja nicht mehr. Ich bin da doch sicher nicht der Einzige, der ein solches Problem hat. Muss man denn tatsächlich sein gesamtes CMS in die Tonne kloppen, weil es durch Verwendung üblicher Befehle unbrauchbar geworden ist?


Man muss gar nichts in die Tonne kloppen, sondern sich die Dokumentation durchlesen und fortbilden. HIer ist ein ganz guter Forenbeitrag, der die Problematik auflöst:

http://stackoverflow.com/questions/1244 ... f-8-string

Besonders das "Example #3" (ab PHP 5.3) ist da zu beachten.
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 10 guests