- Thomas Pollinger
- 15.07.2019
- DE
How-To: Zeichensatz-Enkodierung
Der Management Server unterstützt über die Sprachvarianten die Möglichkeit mit unterschiedlichen Zeichensätzen die Inhalte zu publizieren. Dazu ist es wichtig zu wissen, an welchen Stellen im System man welche Änderung vornehmen.
Im nachfolgenden Artikel möchte ich die Stellen im System aufzeigen, an denen man die Einstellungen für die Encodierung beeinflussen bzw. steuern kann.
Sprachvariante
In der Sprachvariante findet man die Option Publiziertes Charset:
- Man wählt in der Drop-Down-Liste den Zeichensatz aus, den man der Sprachvariante zuordnen möchten. Intern werden alle Inhalte vom Management Server in Unicode vorgehalten. Diese Einstellung bestimmt den Zeichensatz für die Publizierung der Sprachvariante. Diese Einstellung ist wichtig, wenn man Websites in verschiedenen Sprachen publizieren möchte.
- Anmerkung: Der ausgewählte Zeichensatz muss auch auf dem Publizierungsserver vorhanden sein.
Projektvariante
In der Projektvarainte findet man ebenfalls Optionen zur Steuerung der Encodierung von Zeichen:
- Einhaltung von W3C-Konformität: Man kann die Inhalte, die zur aktuellen Projektvariante gehören, daraufhin prüfen lassen, ob die Syntax des jeweils publizierten Quellcodes W3C-konform ist, und automatisch korrigieren lassen. Der Management Server Version 16 enthält TIDY 4 und TIDY 5. Dies beeinflusst auch zum Teil die Zeichensatz-Encodierung.
- Wandlung projekteigener Inhalte: Die Konvertierungsdatei verwendet immer die UTF8-Codierung. Um Content-Werte zu konvertieren, bestehen folgende Optionen:
- Zeichen gemäß HTMLConvertTable.txt konvertieren: Man wählt diese Option aus, um die Standardkonvertierung zu aktivieren, welche die in der Datei
HTMLConvertTable.txt
definierte Zuordnung verwendet. Diese Datei befindet sich auf dem Anwendungsserver im Verzeichnis <Management Server installation directory>\ASP
.
- Zeichen gemäß XML konvertieren: Man wählt diese Option aus, um HTML-Tags in Content-Elementen in XML-konforme Zeichen zu konvertieren. Dies ist erforderlich, wenn man XML publiziert, da bestimmte Zeichen nicht im Code erscheinen, z. B. Zeichen wie < und > dürfen. Solche Zeichen werden konvertiert, sodass diese in einem Browser korrekt angezeigt werden.
- Zeichen gemäß folgender Datei konvertieren: Diese Option wählt man aus, um die Konvertierung zu aktivieren, welche die in einer benutzerdefinierten Konvertierungsdatei definierte Zuordnung verwendet. Man kann den gesamten Inhalt oder nur erforderliche Teile in der Datei
HTMLConvertTable.txt
als Basis verwenden. Dazu stellt man sicher, dass diese benutzerdefinierte Datei am selben Ort wie die Datei HTMLConvertTable.txt
: <Management Server installation directory>\ASP
vorliegt.
-
Wichtig:
-
Die Konvertierungsdatei HTMLConvertTable.txt wird in UTF-8-Codierung gespeichert, um eine Konvertierung für Unicode-basierte Zeichen zu ermöglichen. Ein Management Server-Update überschreibt auch hier die lokalen HTMLConvertTable-Dateien. Denke daran, die Kodierung anzupassen, wenn man eine modifizierte Version wieder zurückkopiert. Die Kodierung projektspezifischer Konvertierungsdateien ändert sich dabei nicht.
-
Wenn man eine benutzerdefinierte Konvertierungsdatei verwendet, muss man diese mit UTF-8-Codierung speichern. Dabei verwendet man das folgende Format:
-
Zwei Werte werden durch einen einfachen Tabulatorabstand getrennt. Der erste Wert wird durch den zweiten Wert ersetzt. Es dürfen nicht beide Werte leer sein.
-
Wertepaare werden entweder durch Zeilenumbruch, Zeilenvorschub oder Wagenrücklauf getrennt. Für alle Paare muss die gleiche Umbruchart verwendet werden.
-
Beim Konvertieren wird nicht die ganze Seite, sondern nur die Inhalts-Elemente (Typ: Text) konvertiert. Beachte, dass die Konvertierung abhängig von der Groß- und Kleinschreibung ist. Dies ist wichtig, wenn man beispielsweise <p>-Tags aus den Text-Elementen entfernen möchte.
Publizierungsziel
Auch bei den Publizierungszielen gibt es Möglichkeiten, welche Einfluss auf die Encodierung von Zeichen oder Inhalten haben:
- Keine Byte Order Mark (BOM) schreiben: Man aktiviert diese Checkbox, wenn keine Byte Order Mark geschrieben werden soll. Eine Byte Order Mark zeigt, wie der Dateiinhalt codiert ist. Byte Order Marks werden nur für Unicode-Dateien verwendet. Es gibt verschiedene Unicode-Dateiformate, wie Unicode little-endian, Unicode big-endian oder UTF-8. Byte Order Marks helfen der verarbeitenden Anwendung beim korrekten Rendern des Inhalts. Gerade UTF-8 codierte Unicode-Dateien können mit einfachen uncodierten ASCII-Dateien verwechselt werden.
- Encodierung von Dateinamen: Man wählt die Dateinamen-Encodierung aus, welche man für die Dateiübertragung verwenden möchten. Die Standardeinstellung SERVER(SERVER) wählt die aktuelle ANSI-Codeseite des Betriebssystems aus. Weitere Informationen findet man auf https://msdn.microsoft.com/en-us/library/system.text.encoding.default.
Delivery Server & Webserver
Ebenfalls gibt es im Delivery Server oder auf dem Webserver Möglichkeiten die Encodierung für die Auslieferung zu beeinflussen. Dabei sollte folgendes beachtet werden:
- Der Zeichensatz auf der kompletten Strecke vom CMS zur Auslieferung sollte identisch sein. Damit man sicherstellt, dass unterwegs keine ungewollten Umwandlungen vorgenommen werden.
- Auch die Verarbeitung der BOM sollte geklärt werden, denn nicht alle Konsumenten
Über den Autor:
Thomas Pollinger
... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.
Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.