Webseite in Russisch - Charset umstellen

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Faar
Beiträge: 1497
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von Faar » Mi 15. Apr 2015, 10:41

berkel hat geschrieben:Ich bin jetzt davon ausgegangen, dass es eine Contenido Neuinstallation mit Datenbank in UTF-8 Kodierung ist und da musste ich für kyrillisch nichts anpassen oder umstellen.
Das ist auch so, oder sollte es zumindest sein.
Aber wenn es ein Update ist und bestehende ISO 8859-1 auf utf-8 umgestellt werden soll, kann es fiese Überraschungen geben.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

thilo
Beiträge: 73
Registriert: Mo 22. Mär 2004, 13:41
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von thilo » Mi 15. Apr 2015, 12:55

Ich hab jetzt in meiner Not mal folgenden Versuch gemacht:

- hab mir die Seite von Contenido ausgeben lassen - mit den Fragezeichen.
- hab den kompletten ausgegebenen Quellcode kopiert und in eine statische HTML-Seite umgewandelt
- hab dort die Fragezeichen durch den echten kyrillischen Text ersetzt.
- hochgeladen als test.html

Läuft. Fehlerfrei.

Also liegt der Fehler irgendwo in den Untiefen von Contenido. Wo wird die Seite denn UTF-8 codiert? Welche Dateien muss ich mir anschauen? In der config.php steht auch UTF-8. Im Backend steht bei der Sprache UTF-8. Ich verzweifel noch .....

P.S.: Es ist kein Update von 4.8 sondern eine komplette Neuinstallation in 4.9

berkel
Beiträge: 10
Registriert: So 12. Apr 2015, 18:01
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von berkel » Mi 15. Apr 2015, 13:26

1. Was wird bei der vom Server ausgegebenen Seite im Browser unter Zeichenkodierung / Seiteninformation angezeigt?

2. Von wo kopierst du den kyrillischen Text? Welchen Editor verwendest du?

Kopiere mal von z.B. http://www.yandex.ru über den Browser ein russisches Wort und füge es in den Tiny-Editor ein. Das Wort sollte dann auch nach dem Abspeichern in der HTML-Ansicht in Tiny korrekt angezeigt werden (wenn der Server korrekt eingestellt ist und keine andere Kodierung übermittelt auch im Frontend).

Wie gesagt, bei mir funktioniert das bei einer Standardinstallation mit Datenbankkodierung in UTF-8.

thilo
Beiträge: 73
Registriert: Mo 22. Mär 2004, 13:41
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von thilo » Mi 15. Apr 2015, 13:35

zu 1. Ich habs jetzt aktuell mal von Hand ins Layout geschrieben, weil alles andere auch nicht funktioniert hat:

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<!-- HTML 4.x -->
<meta charset="utf-8">
<!-- HTML5 -->

2. Ich hab den Text schon von überall her kopiert. Von einer funktionierenden Webseite, aus einem UTF-8-codierten txt-file das ich mit TextWrangler (SimpleText-Editor für Mac) erstellt und gespeichert habe und gerade auch von deinem Link.
Ergebnis ist immer dasselbe: copy & paste in den TinyMCE haut hin - speichern - Fragezeichen.

Und wie gesagt: das exakt selbe Dokument als statische HTML-Seite abgespeichert: geht.

Ich habe gerade auch mal eine .htaccess-Datei geschrieben und hochgeladen mit folgendem Inhalt:
AddCharset UTF-8 .html

Interessiert das Ausgabe-Ergebnis nicht die Bohne.... obwohl AMR läuft und alle Seiten auf .html enden....

Ich weiß nicht mehr was ich noch probieren soll.... und eine Neuinstallation drüberlaufen lassen trau ich mich nicht... am Ende geht dann gar nix mehr.... kenn ich schon ;-)

berkel
Beiträge: 10
Registriert: So 12. Apr 2015, 18:01
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von berkel » Mi 15. Apr 2015, 14:00

Wenn schon in Tiny nach dem Abspeichern nur noch ??? angezeigt werden ist klar, dass in der Ausgabe auch nur ??? stehen (in diesem Fall sind tatsächlich nur noch die Fragezeichen vorhanden, da kann nichts mehr daraus umkodiert werden).

Ich kann mir nur noch vorstellen, dass was mit deiner Datenbank nicht stimmt. Prüf mal ob die Datenbank tatsächlich UTF-8 kodiert ist (bei mir ist es "utf8_general_ci"). Bei mir funktioniert es z.B. auch mit dem Beispielmandanten wenn ich da Originaltext mit russischem Text ersetze.

Hast du keine lokale Testumgebeung wo du nochmal eine frische Installation machen kannst?
Faar hat geschrieben: Vorteil bei utf-8 Datenbanken ist, dass man keine Hiroglyphen hat, man kann es direkt lesen.
Nachteil ist, dass z.B. phpmyadmin beim Text editieren von Ansi-code aus geht und dann gibt es eine böse Sauerei.
Das kann ich nicht bestätigen, mit phpMyAdmin 4.2.11 kann ich auch kyrillisch im Klartext direkt in die Datenbank schreiben (ich habe eine Kategorie in der Datenbank umbenannt und es wird im Back- und Frontend korrekt angezeigt).

Faar
Beiträge: 1497
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von Faar » Mi 15. Apr 2015, 23:24

berkel hat geschrieben:Das kann ich nicht bestätigen, mit phpMyAdmin 4.2.11 kann ich auch kyrillisch im Klartext direkt in die Datenbank schreiben .
Ich hatte nur phpmyadmin 2 und 3 zur Verfügung.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

thilo
Beiträge: 73
Registriert: Mo 22. Mär 2004, 13:41
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von thilo » Do 16. Apr 2015, 08:28

Ich danke euch für eure Hilfe.

Eine letzte Frage habe ich noch. Wo kann ich in der Datenbank sehen, welches Charset verwendet wird bzw. dieses umstellen.
Ich habe auch nur phpmyadmin 2 oder 3 zur Verfügung.

Übrigens für alle die diesen Thread später mal benutzen wollen, um ähnliche Probleme zu beheben:
ein völlig idiotisches Problem habe ich selbst schon korrigiert - hat aber leider auch nicht zum Erfolg geführt - aber vielleicht liegt bei einem späteren Threaduser das Problem genau an dieser Stelle:
meine verwendete Schriftart hatte keinen kyrillischen Zeichensatz :oops:
Hab jetzt alles auf Arial umgestellt - aber die Fragezeichen bleiben trotzdem.... Vielleicht hilft der Tipp ja jemandem mal ;-)

berkel
Beiträge: 10
Registriert: So 12. Apr 2015, 18:01
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von berkel » Do 16. Apr 2015, 09:23

In phpMyAdmin kannst du nach Auswahl deiner Datenbank unter dem Reiter Struktur in Spalte Kollation die Kodierung sehen, die sollte insbesondere bei Tabelle 'con_content' UTF-8 sein. Ich würde da aber erstmal nichts umstellen, nur nachsehen.

Wieviel Arbeit hast du denn schon in den Seitenaufbau gesteckt? Eine Neuinstallation kommt nicht in Frage?

thilo
Beiträge: 73
Registriert: Mo 22. Mär 2004, 13:41
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von thilo » Do 16. Apr 2015, 09:39

OK das sieht mir doch verdammt nach nem Lösungsansatz aus - hier steht in der Tat überall "latin1_swedish_ci" drin.

Nur: was mach ich jetzt mit der Information?

Die Seite ist bereits im Liveeinsatz - und ich hab da richtig viel Zeit reingesteckt... Neuinstallation wäre schon richtig besch****en.... aber wenn sichs nicht umgehen lässt....

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von frederic.schneider_4fb » Do 16. Apr 2015, 09:56

Arbeitest Du mit der allerneusten Version von CONTENIDO? Wir erzwingen inzwischen UTF-8, sowohl als Zeichenkodierung für die Seite als auch für die Datenbank-Kollation. Um die Erzwingung zu umgehen müsstest Du entsprechend von Anfang an in der Konfigurationsdatei die UTF-8-Flag entfernen. Mit der neuesten CONTENIDO-Version dürfte Deine Datenbank gar keine Latin1-Kollation besitzen, außer es gab irgendein anderes Problem. Wenn Du testweise mal CONTENIDO 4.9.7 komplett neu installierst (eine separate Installation), dort keine Kodierungsänderungen vornimmst und dann UTF-8 kodierte kyrillische Zeichen eingibst - treten dann trotzdem noch Probleme auf?
Frederic Schneider
Entwickler bei der four for business AG

thilo
Beiträge: 73
Registriert: Mo 22. Mär 2004, 13:41
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von thilo » Do 16. Apr 2015, 10:04

Da bin ich gerade drüber das auszuprobieren.
Derzeit habe ich Version 4.9.6 im Liveeinsatz. Bei der Installation habe ich alles beim Standard gelassen und die Datenbank sagt eindeutig "latin1_swedish".

berkel
Beiträge: 10
Registriert: So 12. Apr 2015, 18:01
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von berkel » Do 16. Apr 2015, 10:18

OK, die Datenbankkodierung hätte man natürlich gleich mal prüfen können. Ich war aber auch davon ausgegangen, dass bei einer 4.9er Neuinstallation standardmäßig UTF-8 verwendet wird.

Ich bin bei den Datenbanksachen kein Experte. Vielleicht hilft dir folgender Artikel weiter: http://www.andersreisen.net/2010/02/17/ ... wordpress/

Ich würde aber auf keinen Fall an der Liveversion rumprobieren sondern erstmal mit einem Backup das man in eine lokale Testumgebung (z.B. Xampp) einspielt. Wie von den anderen schon gesagt kann man sich da leicht die Datenbank zerschießen.

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von frederic.schneider_4fb » Do 16. Apr 2015, 10:33

thilo hat geschrieben:Da bin ich gerade drüber das auszuprobieren.
Derzeit habe ich Version 4.9.6 im Liveeinsatz. Bei der Installation habe ich alles beim Standard gelassen und die Datenbank sagt eindeutig "latin1_swedish".
Es gab leider in Version 4.9.6 ein Fehler, sodass trotz UTF-8-Flag nicht die UTF-8-Kollation bei Datenbanken gesetzt wird, sondern was Dein Datenbankserver als Standard vorgibt. Das kann manchmal UTF-8 sein, im optimalen Fall, aber z. B. auch Latin1. In Version 4.9.7 haben wir das Problem behoben, was bei Neuinstallationen auftritt. Du kommst also nicht dran vorbei, die Datenbank-Kollationen komplett auf UTF-8 umzustellen und dann sicherzustellen, dass alle Texte auch UTF-8 kodiert sind. Wie hier bereits empfohlen: Bitte zuerst lokal bzw. anderweitig, jedenfalls aber nicht auf Livesystemen diese Problemlösungen ausprobieren.
Frederic Schneider
Entwickler bei der four for business AG

Faar
Beiträge: 1497
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von Faar » Do 16. Apr 2015, 11:17

Manche Hoster geben für die Datenbanken nicht alle benötigten Privilegs (GRANT), vielleicht fehlt das was, um die Kollation zu ändern.
Für Russisch kann man auch russische Kollationen nehmen: https://dev.mysql.com/doc/refman/5.0/en ... -sets.html
Wie unpassend manchmal utf-8 sein kann, sieht man hier unten beim Beispiel mit dem ß != s https://dev.mysql.com/doc/refman/5.0/en ... -sets.html
Welche Kollation ist manchmal richtig und manchmal falsch?
https://dev.mysql.com/doc/refman/5.0/en ... ffect.html

Eine Kollation ändert meines Wissens nicht die Daten selbst in der Datenbank, sondern lediglich die Zuordnung zum Charaktersatz (Collation) wird geändert.
Folglich sollte man je nach Lust und Laune an der Kollation ändern können, bis man die richtige gefunden hat, solange man an den Daten selbst nichts verändert.
Lehrt mich eines Besseren, falls ich mich hier täusche 8)

Eigentlich sollte man per phpMyadmin die Kollation ändern können, sofern man die Privilegs dazu hat.
Aber Achtung, es gibt die Datenbank-Kollation und die Tabellen-Kollation. Oft genug ist es nicht möglich, auch die Datenbank-Kollation zu ändern.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Zuschauer
Beiträge: 140
Registriert: Do 5. Dez 2013, 08:57
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von Zuschauer » Do 16. Apr 2015, 13:06

Der einfachste (und schnellste) Weg, die Kollation der Tabellen zu ändern, ist ein Dump anzufertigen (Struktur und Daten, mit DROP TABLE), dann in eine Kopie davon bei den Tabellenerstellungsanweisungen das CHARSET= am Ende auf utf8 ändern, und das dann in die Datenbank wieder importieren.
Und wenn es nicht funktionieren sollte, kann man das Original zurückspielen (importieren).

Gruß
Zuschauer

Antworten