Ich weiß im Augeblick nicht mehr weiter.
Gestern bin ich auf einem neuen Server von einer Version 5.x auf die Version PHP 7.0.8-0ubuntu0.16.04.3 mit der gesamten Homepage umgezogen. Am liebsten hätte ich dabei direkt alle Skripte und die Datenbank samt Daten auf utf-8 umgestellt. Aber neben dem enormen Aufwand gäbe das auch erhebliche Abstimmungsaufwände mit der Warenwirtschaft und anderen Schnittstellen. Es blieb also alles beim Alten, wurde nur umkopiert und die notwendigen Ersetzungen durchgeführt, z.B. mySQL zu mySQLi. Skripte haben weiterhin das Ansi-Format. Daten in der Datenbank sind westlich (latin1). Vorerst. Bis zum großen Relaunch.
Natürlich habe ich darauf geachtet, dass das lokale Charset sowohl in php.ini (bzw. .htaccess) als auch auf den Ausgabeseiten auf ISO-8859-1 gesetzt wurde. Sogar das globale Charset habe ich temporär auf ISO-8859-1 gesetzt. phpinfo() zeigt es entsprechend an.
Doch alle Umlaute, sowohl aus der Datenbank als auch Texte in den PHP-Seiten selbst, werden leider immer noch nun als Fragezeichen ausgegeben. utf-8 lässt irgendwo grüßen. Tests ergaben, dass Dateien, sobald sie im utf-8 Format abgespeichert wurden, korrekt angezeigt werden konnten. "Frühe Vögel gähnen!" wird korrekt ausgegeben, wenn es entweder im Format utf-8(bom) abgespeichert wird oder als ansi und dann codiert (Ã?bergänge sind höchst mäÃ?ig). "Frühe Vögel gähnen!" als ansi ergibt dagegen "Fr?he V?gel g?hnen!". Ändere ich das Postfix der ansi-Datei von .php auf .html, werden die Umlaute im Browser sofort korrekt ausgegeben.
Was muss ich noch beachten? Was habe ich übersehen?
Gestern bin ich auf einem neuen Server von einer Version 5.x auf die Version PHP 7.0.8-0ubuntu0.16.04.3 mit der gesamten Homepage umgezogen. Am liebsten hätte ich dabei direkt alle Skripte und die Datenbank samt Daten auf utf-8 umgestellt. Aber neben dem enormen Aufwand gäbe das auch erhebliche Abstimmungsaufwände mit der Warenwirtschaft und anderen Schnittstellen. Es blieb also alles beim Alten, wurde nur umkopiert und die notwendigen Ersetzungen durchgeführt, z.B. mySQL zu mySQLi. Skripte haben weiterhin das Ansi-Format. Daten in der Datenbank sind westlich (latin1). Vorerst. Bis zum großen Relaunch.
Natürlich habe ich darauf geachtet, dass das lokale Charset sowohl in php.ini (bzw. .htaccess) als auch auf den Ausgabeseiten auf ISO-8859-1 gesetzt wurde. Sogar das globale Charset habe ich temporär auf ISO-8859-1 gesetzt. phpinfo() zeigt es entsprechend an.
Doch alle Umlaute, sowohl aus der Datenbank als auch Texte in den PHP-Seiten selbst, werden leider immer noch nun als Fragezeichen ausgegeben. utf-8 lässt irgendwo grüßen. Tests ergaben, dass Dateien, sobald sie im utf-8 Format abgespeichert wurden, korrekt angezeigt werden konnten. "Frühe Vögel gähnen!" wird korrekt ausgegeben, wenn es entweder im Format utf-8(bom) abgespeichert wird oder als ansi und dann codiert (Ã?bergänge sind höchst mäÃ?ig). "Frühe Vögel gähnen!" als ansi ergibt dagegen "Fr?he V?gel g?hnen!". Ändere ich das Postfix der ansi-Datei von .php auf .html, werden die Umlaute im Browser sofort korrekt ausgegeben.
Was muss ich noch beachten? Was habe ich übersehen?
Kommentar