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?
thilo
Beiträge: 73
Registriert: Mo 22. Mär 2004, 13:41
Kontaktdaten:

Webseite in Russisch - Charset umstellen

Beitrag von thilo » Mi 15. Apr 2015, 09:43

Hallo Forum,

ich muss für einen Kunden eine Seite in russisch erstellen.
Hierfür benötige ich als Charset aber nicht das standardmäßig eingestellte "UTF-8" sondern "ISO-8859-1".

Wenn ich in mein Layout ISO-8859-1 eintrage wird das von Contenido offenbar wieder überschrieben in UTF-8.

Gibt es hierfür eine Lösung?

Danke und Viele Grüße
Thilo

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

Re: Webseite in Russisch - Charset umstellen

Beitrag von Faar » Mi 15. Apr 2015, 09:48

Der Charset wird im Backend in den Spracheinstellungen festgelegt.
Wenn dort noch utf-8 drin steht, wird natürlich das genommen.
Im Layout sollte man das nicht eintragen, nur in Sonderfällen.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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, 09:54

@thilo

Gibt es einen besonderen Grund nicht UTF-8 zu verwenden? Ich arbeite gerade auch an einer mehrsprachigen Website inkl. Russisch und ich mache alles 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, 09:59

@Faar: danke - lässt man dann die Zeile aus dem Layout einfach ersatzlos weg und Contenido übernimmt die Einstellung aus der Sprachvarianten? Das wusste ich nicht ;-)

@berkel: nein kein besonderer Grund. Nur dass ich gerade UTF-8 verwende und statt der kyrillischen Schriftzeichen nur "???" angezeigt bekomme.... ich dachte die Lösung wäre ISO-8859-1 weil ich das in vorherigen Projekten schon so gelöst hatte.... aber ich lass mich gerne aufklären wenn ich damit auf dem Holzweg bin.... ;-)

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, 10:05

.... und ich habe gerade gesehen, dass in den Spracheinstellungen im Backend "UTF-8" fest vorgegeben ist - siehe Bildschirmfoto.... also da könnte ich es nichtmal umstellen wenn ich wollte....
Dateianhänge
Bildschirmfoto 2015-04-15 um 11.04.14.png
Bildschirmfoto 2015-04-15 um 11.04.14.png (37.68 KiB) 4206 mal betrachtet

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von homtata » Mi 15. Apr 2015, 10:10

Damit utf-8 funktioniert, muss m.E. mehr als nur die Spracheinstellung im Mandanten stimmen.

Schau mal, ob
a) die Einstellung in (root)/data/config/production/config.php auf utf-8 steht, und zwar hier:

Code: Alles auswählen

'charset'  => 'utf8', // (string) The charset of connection to database
und dann müssen denke ich

b) vor allem in der Datenbank viele Felder auf utf-8 umgestellt werden, die möglicherweise noch auf latin_swedish irgendwas stehen.

Aber: BACKUPS vor allen Änderungen machen! Möglicherweise sind Umstellungen anschließend nicht mehr verlustfrei reversibel.
Ich hatte bei Upgradeversionen schon die Aufgabe, etliche Datenbankfelder umzustellen (für türkisch), weil die Sonderzeichen ums verrecken nicht mehr durchkamen und schlicht und ergreifend falsch in der DB abgespeichert wurden. Daher schon bei der Grundinstallation von Contenido möglichst bei den erweiterten Einstellungen utf-8 angeben.

Vorschlag: Backups machen, Installation nochmal als Upgrade-Installation laufen lassen und ggf. die Datenbankkollationen umstellen.
Neu testen, ob alle Sonderzeichen durchkommen.

LG

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

Re: Webseite in Russisch - Charset umstellen

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

thilo hat geschrieben:@Faar: danke - lässt man dann die Zeile aus dem Layout einfach ersatzlos weg und Contenido übernimmt die Einstellung aus der Sprachvarianten? Das wusste ich nicht ;-)

@berkel: nein kein besonderer Grund. Nur dass ich gerade UTF-8 verwende und statt der kyrillischen Schriftzeichen nur "???" angezeigt bekomme.... ich dachte die Lösung wäre ISO-8859-1 weil ich das in vorherigen Projekten schon so gelöst hatte.... aber ich lass mich gerne aufklären wenn ich damit auf dem Holzweg bin.... ;-)
Zu Erstens: Ja, Contenido setzt den Charset ein, den man in den Sprachen eingestellt hat.
Interessant dabei ist, dass du kyrillisch in der einen Sprache haben kannst und bei Deutsch dann den üblichen ISO 8859-2 Code.
Ich habe auch Deutsch in iso-8859-1 und z.B. Chinesisch in utf-8. http://www.123koenig.com/contenido/cms/chinese/
(Und ja, ich habe das "Contenido" extra so im Pfad gelassen, das "cms" auch, wegen Mandanten 8) ).

Zu Zweitens: ISO 8859-1 ist meines Wissens nicht die passende Form für Kyrillisch. Es ist Latin 1, also Westeuropäisch.
Du müsstest dann ISO-8859-5 nehmen.
Aber UTF-8 geht auch, hab ich in einem Projekt so.
utf-8 ändert die Dateien!
kyrillisch erst eintragen, wenn umgestellt wurde. Sonst ???
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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, 10:18

Ich bin auch kein Spezialist, aber soweit ich weiß ist UTF-8 mittlererweile die bevorzugte Kodierung auch für kyrillische Schrift (die in Russland verbreitete Suchmaschine "yandex.ru" verwendet auch UTF-8). Einige ältere Infos findest du hier http://www.moosburg.org/design/kyrill.html8. Der Vorteil von UTF-8 ist, dass du alles in (kyrillischem) Klartext eingeben kannst, also z.B. auch im Quellcode. Für eine neue Website würde ich UTF-8 verwenden.

Wenn du Fragezeichen angezeigt bekommst dann liegt das i.d.R. daran, dass der Server die Seite mit einer anderen bzw. falschen Kodierung im HTTP-Header ausliefert. Die wird dann vom Browser im Zweifel höherrangig behandelt als die Angabe im HTML Dokument selbst. Da müsstest du mal die Serverkonfiguration prüfen.

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, 10:22

Also dann verstehe ich das Problem aber erst recht nicht.
UTF-8 ist ja standardmäßig als Charset in Contenido 4.9.x eingestellt.
Daran habe ich auch nichts geändert. UTF-8 steht auch in meinem Code - wurde von Contenido automatisch eingetragen.

Nach der nackten Installation habe ich die russischen Texte in meine Artikel kopiert. Das Ergebnis: "??????"

@berkel: hmm..... danke für die Info. Dann werde ich das vllt mal mit dem Provider besprechen. Denn im Quellcode steht glasklar UTF-8 drin.... sehr mysteriös....

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

Re: Webseite in Russisch - Charset umstellen

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

homtata hat geschrieben:Damit utf-8 funktioniert, muss m.E. mehr als nur die Spracheinstellung im Mandanten stimmen.
Zumindest bei der 4.8.x war es so, dass beim Umstellen des Zeichensatzes auf utf-8 im Hintergrund alle Dateien geändert wurden, und zwar in utf-8.
Das ist nicht nur eine Markierung, das tut auch was :wink:

b) vor allem in der Datenbank viele Felder auf utf-8 umgestellt werden, die möglicherweise noch auf latin_swedish irgendwas stehen.
Wordpress funktioniert bei mir bestens mit latin_swedish.
Es kommt auf das Handshake an:
Wordpress gibt der Datenbank UTF-8 Zeichen und diese speichert das in den Ersatzzeichen (Hiroglyphen) ab.
Wordpress holt Zeichen aus der Datenbank und weiß, dass es UTF-8 codierte Zeichen sind.

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.
Bei latin_swedish kannst du immer noch alles direkt editieren, außer den Hiroglyphen.
Aber: BACKUPS vor allen Änderungen machen!
Ja, bei utf-8 empfehlenswert.
Gemischt Daten (utf-8 und ISO) in der DB sind böse.
Möglicherweise sind Umstellungen anschließend nicht mehr verlustfrei reversibel.
Yo :twisted:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: Webseite in Russisch - Charset umstellen

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

berkel hat geschrieben: Der Vorteil von UTF-8 ist, dass du alles in (kyrillischem) Klartext eingeben kannst, also z.B. auch im Quellcode.
Das geht nur dann gut, wenn das Dokument selbst auch als utf-8 Dokument abgespeichert wurde.
Man kann in ISO Code-Dokumenten auch spezielle Zeichen einfügen und das wird dann sogar angezeigt, aber sowie man dann diese Dokumente in utf-8 umwandelt, dann entstehen diese ???, weil es doppelt gemoppeltes utf-8 ist.
Dann muss man in dem Fall diese ??? Zeichen nochmal mit den utf-8 Zeichen überschreiben und, nicht vergessen, im Editor auch als utf-8 abspeichern.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: Webseite in Russisch - Charset umstellen

Beitrag von homtata » Mi 15. Apr 2015, 10:33

Wie gesagt: überprüfe mal, wie die Texte in der Datenbank landen! Wenn die Felder dort NICHT auf utf-8 eingestellt sind, dann werden beim Abspeichern die Sonderzeichen zerschossen, egal was in Contenido eingestellt ist. Dann kann auch später nix mehr anständiges ausgelesen und ausgeliefert werden. Und wenn die config.php nicht stimmt und dort utf-8 nicht als Zeichensatz eingetragen ist, wird es ebenfalls Probleme geben. Es muss schon alles drei ineinander greifen, sonst spinnt sich das zu Tode. Ich hatte für türkisch eben auch ewig rumprobieren müssen, aber ich habe es in keiner anderen Kombination geschafft, in Contenido die Daten sowohl verlässlich abzuspeichern, auszulesen und darzustellen.

Klaro ändert die Umstellung auf utf-8 in den Spracheinstellung die Auslieferung systemeigener Dateien in Contenido (übrigens unschön und schonmal angemeckert, weil die Spracheinstellung dort m.E. das Backend nicht betreffen sollte), aber das is dann in Kauf zu nehmen. Die Fehler lassen sich vermeiden, wenn man a) von vornherein in utf-8 installiert bzw. b) vor dem Upgrade von 4.8 in der Sprache einen gültigen Code setzt (auch isodingensbumsens-1 ist ok) und dann beim Upgrade auf utf-8 umstellt.

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

Re: Webseite in Russisch - Charset umstellen

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

thilo hat geschrieben:Nach der nackten Installation habe ich die russischen Texte in meine Artikel kopiert. Das Ergebnis: "??????"
Nur weil es russisch war, heißt es nicht, dass es auch utf-8 codiert war.
Wenn du Text aus Google Translate kopierst, dann funktioniert das.
Denn im Quellcode steht glasklar UTF-8 drin....
Wenn im Quellcode utf-8 drin steht, ist das nur eine Information aber noch nicht utf-8.
Wenn du einen Editor nimmst, der auch utf-8 speichern kann (Notepad, PsPAD), dann siehst du eventuell den Unterschied zwischen Ansi und utf-8 Zeichen.
Das Dokument muss auch utf-8 codiert sein, sonst kopierst und speicherst du eventuell Ansi oder sonstwas.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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, 10:36

@Faar

Das stimmt, wenn man Dateien mit einem externen Text-Editor bearbeitet muss man darauf achten, dass die Kodierung UTF-8 (ohne BOM) ist. 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.

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

Re: Webseite in Russisch - Charset umstellen

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

homtata hat geschrieben: weil die Spracheinstellung dort m.E. das Backend nicht betreffen sollte
Wenn du im Backend utf-8 Zeichen irgendwo eintragen willst, sollte das Formular selbst auch ein utf-8 Dokument sein.
Folglich ist das schon logisch.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Antworten