Unsichtbare Charaktere auf der Bühne!

Bewährte Verfahren in der IT ändern sich manchmal, und die Verwaltung bestimmter unsichtbarer Zeichen in Textdateien ist ein Beispiel dafür. Die EOL-Zeichen (End of Line) haben sich weiterentwickelt, insbesondere für die Integration von Versionskontrollsystemen. Ebenso wird die Byte Order Mark (BOM) in Unicode-Textdateien immer seltener verwendet.

Mit 4D v19 R2 hat sich 4D nahtlos an diese bewährten Praktiken angepasst und bietet Ihnen mehr Flexibilität auf diesem Weg.

ERINNERUNG

Zeilenende (EOL)

Sie wissen, dass Zeilen in Textdateien mit Zeilenendezeichen getrennt werden. Unter Windows ist es eine Kombination aus zwei Zeichen:

  • Carriage Return (#13, genannt CR) und,
  • Zeilenvorschub (#10, LF genannt).

Unter macOS war es das alte CR-Zeichen.

Versionskontrollsysteme wie Git verwalten CR nicht als EOL-Zeichen, daher muss stattdessen LF verwendet werden.

Byte Order Mark (BOM)

Sie wissen auch, dass eine Unicode-Textdatei unsichtbare Kopfbytes enthalten kann, die Byte Order Mark genannt werden und den verwendeten Zeichensatz definieren.

4D folgte bei der Einführung von Unicode den aktuellen Best Practices und schrieb Textdateien standardmäßig mit einem BOM. Da aber UTF-8 fast zum Standardformat für Textdateien geworden ist, wird das BOM immer seltener verwendet.

Neue 4D Konvention für Textdateien

Von nun an schreibt 4D Textdateien ohne BOM, um dem Trend zu folgen. Und unter macOS verwendet 4D LF als EOL-Zeichen. Dies geschieht automatisch für alle von 4D geschriebenen Dateien, wie z.B. 4DSettings, 4dm, 4DForm und so weiter.

Wenn Sie Dateien in einer früheren 4D Version öffnen, werden Sie keine Probleme haben, auch wenn sie in 4D v19 R2 geschrieben wurden, da diese früheren Versionen in der Lage waren, Dateien ohne BOM und mit LF als EOL Zeichen zu öffnen.

Kompatibilitätseinstellungen

Möchten Sie das Verhalten von 4D beibehalten? Es sind neue Kompatibilitätseinstellungen verfügbar, die es erlauben TEXT TO DOCUMENT und File.setText() Dateien ohne BOM zu erzeugen und LF als EOL-Zeichen auf macOS zu verwenden, wenn die optionalen Parameter „charSet“ und „breakMode“ fehlen. Dies geschieht vollautomatisch; Sie brauchen Ihren Quellcode nicht umzuschreiben, um von diesem neuen Verhalten zu profitieren.

NEUE ZEICHENSÄTZE

Die neuen Kompatibilitätseinstellungen gelten für die Befehle TEXT TO DOCUMENT und File.setText(), wenn sie ohne die optionalen Parameter „charSet“ oder „breakMode“ verwendet werden.
Für das EOL-Zeichen wurden keine Änderungen vorgenommen. Es kann weiterhin mit dem Parameter „breakMode“ erzwungen werden.

Auf die gleiche Weise können Sie auch genau festlegen, ob die Dateien, die von TEXT TO DOCUMENT und File.setText() erzeugten Dateien ein BOM enthalten oder nicht. Definieren Sie dazu einen Unicode-Zeichensatz mit der Endung „-no-bom“, z. B. „UTF-8-no-bom“ oder „UTF-16-no-bom“, um eine Datei ohne BOM zu schreiben. Um eine Datei mit BOM zu schreiben, können Sie weiterhin die vorhandenen Zeichensätze ohne das Suffix „-no-bom“ verwenden, z. B. „UTF-8“ oder „UTF-16“.

Avatar
- Product Owner - Damien Fuzeau ist seit Februar 2019 Mitglied des 4D Produktteams. Als Product Owner ist er für das Schreiben von User Stories zuständig, die er dann in funktionale Spezifikationen umsetzt. Zu seinen Aufgaben gehört es auch, dafür zu sorgen, dass die gelieferten Funktionsimplementierungen den Anforderungen der Kunden entsprechen. Damien hat an der Universität von Nantes einen Abschluss in Softwaretechnik gemacht. Er verbrachte mehr als 23 Jahre in seinem früheren Unternehmen, zunächst als Entwickler (er entdeckte 4D im Jahr 1997) und später als technischer Leiter und Softwarearchitekt. Dieses Unternehmen ist ein 4D OEM Partner und hat 4D basierte Geschäftssoftware für Tausende von Usern auf Hunderten von Servern eingesetzt. Damien ist also mit der Entwicklung und dem Einsatz von 4D in einem mehrsprachigen Kontext vertraut.