tag:forum.selfhtml.org,2005:/self Umlaute nach Serverumzug mit höherer PHP-Version verschwunden – SELFHTML-Forum 2018-01-31T19:53:25Z https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712431#m1712431 Alice https://www.queermdb.de 2018-01-21T16:47:33Z 2018-01-21T16:47:33Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Hallo Freunde, meine Website hat letzte Woche den Webhoster gewechselt. Sie läuft mit Wordpress, aber es gibt noch zahlreiche HTML-Seiten. Auf diesen sind nach dem Wechsel sämtliche Umlaute mit � ersetzt worden.</p> <p>Problem: Die Original-Dateien enthalten die Umlaute. Sobald ich sie auf dem Server übertrage, ist der Quelltext voller �.</p> <p><strong>ORIGINAL:</strong> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html style="direction: ltr;" template="true" lang="Deutsch"><head> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title> CONCUSSION (US 2013) | QUEERmdb - Neue lesbische Filme im Kino [nu queer cinema: Homosexualit<strong>ä</strong>t im Film]</title></p> <p><strong>SERVERVERSION:</strong> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html style="direction: ltr;" template="true" lang="Deutsch"><head> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title> CONCUSSION (US 2013) | queerMdb - Neue lesbische Filme im Kino [nu queer cinema: Homosexualit<strong>�</strong>t im Film]</title></p> <p>Der Webhoster sagt, in der Programmierung der Dateien sei nicht "sauber" genug gearbeitet, bzw. wurden diese lediglich in der falschen Codierung abgespeichert. Ich soll mit Notepad++ in <strong>UTF-8 ohne BOM</strong> encodieren und neu hochladen. Aber die Original-Dateien sind doch ohne BOM, oder? Wenn ich diese im Browser öffne, wird alles korrekt angezeigt.</p> <p>Hat das noch was mit der PHP-Version zu tun? Die war beim alten Webhoster veraltet. Jetzt wurde sie auf 7.0 erhöht. Vorher wars 5.6.</p> <p>Gleichzeitig wurde auf allen Seiten der facebook-Like-Counter auf 0 zurückgesetzt. Wahrscheinlich, weil facebook wegen der Umlaute Abweichungen beim Content festgestellt hat. Falls jemand diesbezüglich Ahnung oder Erfahrungen hat, würde ich mich über Tipps freuen. Aber ist natürlich offtopic, weil kein HTML-Problem.</p> <p>Grüße aus Berlin Alice</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712432#m1712432 Felix Riesterer http://felix-riesterer.de 2018-01-21T16:58:55Z 2018-01-21T16:58:55Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Liebe Alice,</p> <blockquote> <p>Auf diesen sind nach dem Wechsel sämtliche Umlaute mit � ersetzt worden.</p> </blockquote> <p>ein Enkodierungsproblem, wie schon vom Hoster richtig erkannt.</p> <blockquote> <p><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title></p> </blockquote> <p>Aha! Im Content-Type wird ISO-8859-1 als Enkodierung angegeben. Wenn man eine so gespeicherte Datei als UTF-8 interpretiert, und das tut Dein Browser in diesem Moment, dann "verschwinden" die deutschen Sonderzeichen und werden zu diesen Fragezeichen.</p> <p>Lösung? Das ist jetzt ein Fall von "kommt darauf an". Folgende Dinge müssen zusammen passen, damit im Browser alles richtig angezeigt wird:</p> <ol> <li>Die HTML-Dateien müssen in der richtigen Kodierung gespeichert sein.</li> <li>Der Server muss den Inhalt als in dieser Kodierung vorhandenen Content ausgeben ("überschreibt" das, was in Deiner <meta>-Angabe als ISO-8859-1 steht).</li> </ol> <p>Es ist heute nicht mehr sinnvoll eine von Unicode abweichende Kodierung zu verwenden. Stelle alles (!) auf UTF-8 um, dann sollte es keine Probleme mehr geben.</p> <p>Übrigens:</p> <blockquote> <p><html style="direction: ltr;" template="true" lang="Deutsch"><head></p> </blockquote> <p>Was soll <code class="language-html">lang="Deutsch"</code> sein? Als Inhalt des <code>lang</code>-Attributes <a href="https://en.wikipedia.org/wiki/Language_localisation#Language_tags_and_codes" rel="nofollow noopener noreferrer">notiert man in einer dieser ISO-Normen</a>, also in Deinem Fall "de" (generell Deutsch) oder "de-DE" (Deutsch, Variante in Deutschland) bzw. "de-AT" (Deutsch, österreichische Variante).</p> <p>Liebe Grüße,</p> <p>Felix Riesterer.</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712433#m1712433 dedlfix 2018-01-21T17:29:52Z 2018-01-21T17:29:52Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Tach!</p> <blockquote> <blockquote> <p><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"></p> </blockquote> <ol start="2"> <li>Der Server muss den Inhalt als in dieser Kodierung vorhandenen Content ausgeben ("überschreibt" das, was in Deiner <meta>-Angabe als ISO-8859-1 steht).</li> </ol> </blockquote> <p>Etwas Erläuterung: Obige Zeile ist nur ein Ersatz, wenn der Server keine äquivalente Zeile als HTTP-Header mitschickt. Sendet er nur den Content-Type aber ohne Charset, dann nimmt der Browser nur die Charset-Angabe, um den Inhalt entsprechend zu dekodieren. Vermutlich wird der Server nun eine vollständige Zeile mitschicken, aber mit UTF-8. Deshalb zieht die obige Zeile gar nicht mehr. Das kann man nachschauen mit den Entwicklertools der Browser, konkret im Network-Tab. Da sieht man alle Requests und beim Click auf einen auch die Details, wie Request- und Response-Header.</p> <p>Die einfachste Lösung wäre, das PHP so zu konfigurieren, dass es keine oder ISO-8859-1 als Kodierung/charset sendet. Die php.ini-Direktive default_charset ist seit PHP-Version 5.6 mit dem Wert UTF-8 vorbelegt, war früher leer. Die moderne Lösung wäre hingegen das bereits erwähnte Umkodieren.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712516#m1712516 Alice 2018-01-22T20:04:42Z 2018-01-22T20:04:42Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Ich habe mit der Notepad++-Methode "Kodierung in UTF-8 ohne BOM" leider auch keinen Erfolg: https://www.queermdb.de/film/einfach-das-ende-der-welt-2016-ob.html</p> <p>Auch wenn ich das ISO-8859-1 lösche und "ohne BOM" speichere, ändert sich nichts: https://www.queermdb.de/film/einfach-das-ende-der-welt-2016-ob-oc.html</p> <p>Den kompletten Meta-Content-Tag zu löschen, hat ebenfalls keinen Effekt: https://www.queermdb.de/film/einfach-das-ende-der-welt-2016-om.html</p> <p>Macht Notepad++ einen Fehler? Es ersetzt sämtliche Umlaute mit drei Buchstaben. "ä" zb in xE4. Wenn ich das kopiere, kommt das an: <em>Xavier Dolans Verfilmung des Theaterst�� EINFACH DAS ENDE DER WELT erz婬t die Geschichte ...</em></p> <p>Wie muss denn der Code korrekt aussehen???</p> <p> </p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712454#m1712454 Felix Riesterer http://felix-riesterer.de 2018-01-21T21:56:02Z 2018-01-21T21:56:02Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Lieber dedlfix,</p> <blockquote> <p>Die einfachste Lösung wäre, das PHP so zu konfigurieren, dass es keine oder ISO-8859-1 als Kodierung/charset sendet.</p> </blockquote> <p>wenn der Hoster das zulässt. Das muss er nicht, womit diese Lösung auch wieder in den Fall "es kommt darauf an" einzuordnen wäre.</p> <p>Liebe Grüße,</p> <p>Felix Riesterer.</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712455#m1712455 dedlfix 2018-01-21T22:11:28Z 2018-01-21T22:11:28Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Tach!</p> <blockquote> <blockquote> <p>Die einfachste Lösung wäre, das PHP so zu konfigurieren, dass es keine oder ISO-8859-1 als Kodierung/charset sendet.</p> </blockquote> <p>wenn der Hoster das zulässt. Das muss er nicht, womit diese Lösung auch wieder in den Fall "es kommt darauf an" einzuordnen wäre.</p> </blockquote> <p>Man kann das zur Not auch noch mit ini_set() setzen. <code>default_charset</code> ist <a href="http://php.net/manual/en/configuration.changes.modes.php" rel="noopener noreferrer">PHP_INI_ALL</a>. Der generelle Weg wäre über eine <code>.user.ini</code> im Verzeichnis der aufgerufenen Scripte. Der Hoster hat keinen Vorteil, diese Möglichkeit den Usern generell zu unterbinden.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712458#m1712458 Felix Riesterer http://felix-riesterer.de 2018-01-22T01:18:37Z 2018-01-22T01:18:37Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Lieber dedlfix,</p> <blockquote> <blockquote> <p>wenn der Hoster das zulässt. Das muss er nicht, womit diese Lösung auch wieder in den Fall "es kommt darauf an" einzuordnen wäre.</p> </blockquote> <p>Man kann das zur Not auch noch mit ini_set() setzen. <code>default_charset</code> ist <a href="http://php.net/manual/en/configuration.changes.modes.php" rel="noopener noreferrer">PHP_INI_ALL</a>.</p> </blockquote> <p>Die Welt ist bunt und bei manchem Hoster sieht es nicht so aus, wie Du es vielleicht gewöhnt bist. Ist nur meine Erfahrung...</p> <blockquote> <p>Der generelle Weg wäre über eine <code>.user.ini</code> im Verzeichnis der aufgerufenen Scripte.</p> </blockquote> <p>Oder eine <code>php.ini</code>. Da kann der Hoster aus "Sicherheitsgründen" aber jede Menge Beschränkungen einrichten.</p> <blockquote> <p>Der Hoster hat keinen Vorteil, diese Möglichkeit den Usern generell zu unterbinden.</p> </blockquote> <p>Das mag sein, aber Beschränkungen dieser Art können Deinen Lösungsweg schon vermasseln. Da hilft nur ein sich-einarbeiten und eventuell Kontakt mit dem Hoster aufnehmen. Hat Alice wohl schon gemacht, nur kam sie mit den Hinweisen noch nicht klar.</p> <p>Liebe Grüße,</p> <p>Felix Riesterer.</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712519#m1712519 JürgenB https://www.j-berkemeier.de 2018-01-22T20:09:51Z 2018-01-22T20:09:51Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Hallo,</p> <p>hast du die Datei auch in UTF-8 ohne BOM konvertiert?</p> <p>Gruß<br> Jürgen</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712522#m1712522 dedlfix 2018-01-22T20:30:01Z 2018-01-22T20:30:01Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Tach!</p> <blockquote> <p>hast du die Datei auch in UTF-8 ohne BOM konvertiert?</p> </blockquote> <p>Genau, der Notepad hat zwei Abschnitte in dem Kodierungsmenü. Der obere ist, wie die Datei gelesen werden soll. Das muss natürlich erstmal ISO-8859-1 bzw. ANSI sein, denn das ist ja das aktuelle Format. Und im unteren Teil des Menüs kann man sie umkodieren lassen.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712989#m1712989 Alice 2018-01-31T19:12:31Z 2018-01-31T19:12:31Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>DANKE!!!!!!!!!!!!!!!!!!!!!!!!!! Ich hab gleich oben auf "ohne BOM" geklickt, was natürlich Quatsch ist.</p> <p>Jetzt wird alles korrekt dargestellt. Leider kommen die facebook-Likes durch die Fehlerbehebung aber nicht zurück.</p> https://forum.selfhtml.org/self/2018/jan/21/umlaute-nach-serverumzug-mit-hoeherer-php-version-verschwunden/1712990#m1712990 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2018-01-31T19:53:25Z 2018-01-31T19:53:25Z Umlaute nach Serverumzug mit höherer PHP-Version verschwunden <p>Hallo Alice,</p> <blockquote> <p>DANKE!!!!!!!!!!!!!!!!!!!!!!!!!!</p> </blockquote> <p>Deine Taste mit der 1 ist kaputt.</p> <blockquote> <p>Leider kommen die facebook-Likes durch die Fehlerbehebung aber nicht zurück.</p> </blockquote> <p>Weniger ist manchmal mehr.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div>