GEDCOM/CHAR-Tag: Unterschied zwischen den Versionen

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen
(Entscheidungsvorschlag eingefügt)
(Entscheidungsvorschlag E3 geändert, Vermerk zu UNICODE im letzten Kapitel, Entscheid.alternativen im letzten Kapitel entfernt, BOM umformuliert)
Zeile 63: Zeile 63:


* '''E3 Optionale Kodierungen'''
* '''E3 Optionale Kodierungen'''
** Weitere, im GEDCOM-Standard 5.5.1 aufgeführte Kodierungen dürfen optional unterstützt werden: ANSEL, ASCII, UNICODE (=UCS-2).
** Weitere, im GEDCOM-Standard 5.5.1 aufgeführte Kodierungen dürfen optional unterstützt werden: ANSEL, ASCII, UCS-2 BE, UCS-2 LE, UTF-16 BE, UTF-16 LE. Die Verwendung der Kodierungen UCS-2 und UTF-16 wird nicht empfohlen.


* '''E4 Duldung ANSI'''
* '''E4 Duldung ANSI'''
Zeile 96: Zeile 96:


* '''B1 BOM beim Export'''
* '''B1 BOM beim Export'''
** Das Byte Order Mark (BOM) wird bei UNICODE-Kodierungen ( UTF-8, USC-2 ) ausgegeben.
** Das Byte Order Mark (BOM) wird bei UNICODE-Kodierungen ( UTF-8, USC-2, UTF-16 ) ausgegeben.


Alternativvorschlag:
Alternativvorschlag:
Zeile 110: Zeile 110:


Folgende Themen sind derzeit in der GEDCOM-Arbeitsgruppe von Compgen mit den Programmentwicklern in Diskussion:  
Folgende Themen sind derzeit in der GEDCOM-Arbeitsgruppe von Compgen mit den Programmentwicklern in Diskussion:  
=== Kodierung "UNICODE" im GEDCOM Standard 5.5.1 ===
Der GEDCOM Standard 5.5.1 ist nicht eindeutig in der Aussage, was bei der Angabe von Zeichensatzkodierungen mit "UNICODE" gemeint ist. Es gibt hierfür sowohl die Interpretation, es sei UCS-2 gemeint als auch die Interpretation, es sei UTF-16 (jeweils in den Byte Orders BE und LE) gemeint.
Um bei der Vereinbarung unter den Programmautoren hier diese Unsicherheit nicht fortbestehen zu lassen, wurden im Punkt Export E3 explizit sowohl die UCS-2 als auch die UTF-16 Kodierungen aufgeführt.


=== Standard Kodierung beim Export ===
=== Standard Kodierung beim Export ===


Folgende GEDCOM 5.5.1 konforme Optionen stehen zur Zeit zur Diskussion:
Folgende GEDCOM 5.5.1 konforme Optionen stehen zur Auswahl:
* UTF-8
* UTF-8
** Erlaubt die unproblematische Darstellung von internationalen Zeichen
** Erlaubt die unproblematische Darstellung von internationalen Zeichen
** Wird von einigen Programmen nicht unterstützt
** Wird von einigen Programmen nicht unterstützt
* ASCII
* ASCII
** Zu limitiert
** Zu limitierter Zeichensatz
* ANSEL  
* ANSEL  
** Gute Unterstützung von internationalen Zeichen
** Gute Unterstützung von internationalen Zeichen
** Kaum benutzt und geringe Verbreitung
** Kaum benutzt und geringe Verbreitung
* UNICODE
* UNICODE
** Wird im Standard als UCS-2 definiert.
** Entspricht UCS-2 oder UTF-16.
** Gute Unterstützung von internationalen Zeichen, aber nicht so umfangreich wie UTF-8
** Gute Unterstützung von internationalen Zeichen, gleicher Umfang wie UTF-8
** Wird von wenigen Programmen unterstützt
** Wird von wenigen Programmen unterstützt


Bemerkung: ANSI ist zwar nicht GEDCOM 5.5.1 konform, scheint aber heute noch von vielen Genealogieprogrammen als das Standardformat beim Import erwartet zu werden.
Bemerkung: ANSI ist zwar nicht GEDCOM 5.5.1 konform, ist aber heute weitverbreitet und wird von vielen Genealogieprogrammen als das Standardformat eingesetzt. Es bestehen Probleme, wenn die Codepage nicht eindeutig oder richtig mit angegeben wird.


Status:
Status:


''OFFEN''
''Entscheidungsvorschlag formuliert''


=== Mindestanforderung zu den optionalen Kodierungen beim Export ===


Die Frage kam auf, ob neben der als Standard festgelegten Kodierung weitere Kodierungen als Alternativen angeboten werden sollen.
=== Benutzung der Byte Order Mark (BOM) bei UNICODE Kodierungen ===
Falls weitere Kodierungen angeboten werden sollen ist außerdem zu entscheiden welche alternative(n) Kodierung(en) angeboten werden muss/müssen. <br />
* UTF-8
* UNICODE
* ASCII
* ANSEL


* ANSI (nicht GEDCOM 5.5.1 konform)
Mit dem BOM wird zu Beginn der Datei angegeben, in welcher Ordnung die Bytes bei UTF-16 zu lesen sind. Für UTF-8 ist ebenfalls ein BOM definiert.


Lösungsvorschlag:
Folgende Argumente werden zur Zeit in der Arbeitsgruppe der Programmautoren abgewogen:
* Jedes Programm bietet als Standard-Export die Kodierung UTF-8.
* Durch die Angabe des BOM wird die Identifizierung der gewählten Kodierung erleichtert
* Als Option sollte mindestens ein Export mit Kodierung ANSI angeboten werden, (den die meisten Programme heute als Standard haben).
* Ältere Programme verstehen z.T. Dateien mit BOM nicht und brechen den Import ab
 
Status:
 
''OFFEN''
 
=== Mindestanforderung von Kodierungen beim Import ===
 
Zu klären ist, welche Kodierungen ein Programm beim Einlesen von Dateien mindestens unterstützen muss:
* UTF-8
* UNICODE
* ANSI
* ASCII
* ANSEL
 
Lösungsvorschlag:
* Jedes Programm soll mindestens UTF-8 und ANSI beim Import verarbeiten können.
 
Status:
 
''OFFEN''
 
=== Benutzung der Byte Order Mark (BOM) bei UNICODE Kodierungen ===


Folgende Optionen zur Unterstützung der BOM stehen offen:
* BOM <u>muss</u> unterstützt werden.
* BOM kann angegeben werden.
* BOM <u>darf nicht</u> benutzt werden (Probleme bei älteren Programmen).


Status:
Status:


''OFFEN''
''in Diskussion''


=== Versionsangaben bei UNICODE Kodierungen ===
=== Versionsangaben bei UNICODE Kodierungen ===

Version vom 12. Dezember 2009, 22:03 Uhr

Name und Bedeutung

Tag

CHAR

Formelle Bezeichnung

CHAR

Deutsche Bezeichnung

CHAR steht für Character-set, auf Deutsch: Zeichensatz.

Verwendung

Über das tag CHAR soll die Kodierung der in der GEDCOM Datei benutzten Buchstaben und Zeichen festgelegt werden.

Formale Beschreibung zulässiger Werte

Basis

Basis dieser Beschreibung: GEDCOM Standard Draft 5.5.1

Der Standard erlaubt die Verwendung folgender Kodierungen:

- 8-Bit ANSEL

- ASCII (USA Version)

- UNICODE

- UTF-8

Standardfall

Jede GEDCOM Datei soll im Header Angaben zur benutzten Kodierung geben. Das Format ist wie folgt:

1 CHAR <Zeichensatzkodierung>

Beispiel:

1 CHAR UTF-8

! Achtung: Es sind nur folgende Kodierungen erlaubt.

<Zeichensatzkodierung> := ANSEL |UTF-8 | UNICODE | ASCII

Optionale Angaben

keine

Entscheidungsvorschlag zu CHAR

Unter Einarbeitung der Diskussion in der Gedcom-L wird hier ein erster Versuch gemacht, einen Entscheidungsvorschlag vorzustellen. Die Punkte sind gegliedert und mit Punktkennzeichnungen wie E1, E2, ..., I1, ... bezeichnet, damit in der Diskussion leichter darauf verwiesen werden kann.

Der Vorschlag wird jetzt zur Diskussion gestellt. Er kann abgeändert oder durch Alternativvorschläge ergänzt werden. Nach der Diskussion soll es dann über eine Abstimmung zu einer Vereinbarung zu diesem Umfang kommen.


Vorschläge zu Vereinbarungen zu CHAR bezüglich Export

  • E1 Angabe der Kodierung
    • Die in der Datei verwendete Kodierung wird im Kopf („Header“) der Datei explizit angegeben in der Form:
    • 1 CHAR Zeichensatzkodierung
  • E2 Standard-Kodierung
    • Der Export in der Kodierung UTF-8 muss unterstützt werden, diese Kodierung wird als Standard-Kodierung eingestellt.
  • E3 Optionale Kodierungen
    • Weitere, im GEDCOM-Standard 5.5.1 aufgeführte Kodierungen dürfen optional unterstützt werden: ANSEL, ASCII, UCS-2 BE, UCS-2 LE, UTF-16 BE, UTF-16 LE. Die Verwendung der Kodierungen UCS-2 und UTF-16 wird nicht empfohlen.
  • E4 Duldung ANSI
    • Die Unterstützung der ANSI Kodierung wird geduldet, d.h. sie darf als Option unterstützt werden, obwohl ANSI nach GEDCOM Standard 5.5.1 nicht zulässig ist.
  • E5 Warnung bei unvollständigem Export
    • Wählt der Anwender beim Export eine Kodierung, die nicht alle in der aktuellen Datei vorkommenden Zeichen unterstützt, so gibt das Programm eine Warnung aus.
  • E6 Position CHAR im Header
    • CHAR wird im Header so weit nach oben gestellt, dass vor dem tag CHAR keine Zeichen ausserhalb des US_ASCII Umfanges auftreten.


Vorschläge zu Vereinbarungen zu CHAR bezüglich Import

  • I1 Unterstützung von Kodierungen
    • Beim Import müssen die Kodierungen UTF-8 und ANSEL unterstützt werden
  • I2 Unterstützung weiterer Kodierungen
    • Weitere Kodierungen aus E3 dürfen unterstützt werden, die Unterstützung wird empfohlen
  • I3 Duldung und Unterstützung ANSI
    • Die Unterstützung der Kodierung ANSI wird geduldet. Für eine Übergangszeit muss der Import von ANSI-kodierten Dateien unterstützt werden. Beim Import von ANSI Dateien darf das Programm den Nutzer nach der Codepage fragen.
  • I4 Erkennung der Kodierung
    • Die Kodierung muss automatisch vom Programm erkannt werden, wenn sie nach E1 und E6 korrekt angegeben ist.
  • I5 Warnmeldung bei unvollständigem Import
    • Kann eine importierte Datei mit den in I1 vereinbarten Kodierungen intern nicht vollständig verarbeitet werden, so wird dem Nutzer eine Warnmeldung gegeben. Tritt das Problem mit nach I2 oder I3 kodierten Dateien auf, so soll ebenfalls eine Warnmeldung gegeben werden.


Kennzeichnung durch Byte Order Mark (BOM)

  • B1 BOM beim Export
    • Das Byte Order Mark (BOM) wird bei UNICODE-Kodierungen ( UTF-8, USC-2, UTF-16 ) ausgegeben.

Alternativvorschlag:

  • B1 -A- BOM beim Export
    • Das Byte Order Mark (BOM) kann beim Export optional ausgegeben werden.
  • B2 BOM beim Import
    • Über Erkennungsroutinen wird eine automatische Erkennung sichergestellt, ob ein BOM in der einzulesenden Datei vorhanden ist, und wenn ja, welches BOM.


Behandlung/Darstellung schwieriger Situationen

Folgende Themen sind derzeit in der GEDCOM-Arbeitsgruppe von Compgen mit den Programmentwicklern in Diskussion:

Kodierung "UNICODE" im GEDCOM Standard 5.5.1

Der GEDCOM Standard 5.5.1 ist nicht eindeutig in der Aussage, was bei der Angabe von Zeichensatzkodierungen mit "UNICODE" gemeint ist. Es gibt hierfür sowohl die Interpretation, es sei UCS-2 gemeint als auch die Interpretation, es sei UTF-16 (jeweils in den Byte Orders BE und LE) gemeint.

Um bei der Vereinbarung unter den Programmautoren hier diese Unsicherheit nicht fortbestehen zu lassen, wurden im Punkt Export E3 explizit sowohl die UCS-2 als auch die UTF-16 Kodierungen aufgeführt.

Standard Kodierung beim Export

Folgende GEDCOM 5.5.1 konforme Optionen stehen zur Auswahl:

  • UTF-8
    • Erlaubt die unproblematische Darstellung von internationalen Zeichen
    • Wird von einigen Programmen nicht unterstützt
  • ASCII
    • Zu limitierter Zeichensatz
  • ANSEL
    • Gute Unterstützung von internationalen Zeichen
    • Kaum benutzt und geringe Verbreitung
  • UNICODE
    • Entspricht UCS-2 oder UTF-16.
    • Gute Unterstützung von internationalen Zeichen, gleicher Umfang wie UTF-8
    • Wird von wenigen Programmen unterstützt

Bemerkung: ANSI ist zwar nicht GEDCOM 5.5.1 konform, ist aber heute weitverbreitet und wird von vielen Genealogieprogrammen als das Standardformat eingesetzt. Es bestehen Probleme, wenn die Codepage nicht eindeutig oder richtig mit angegeben wird.

Status:

Entscheidungsvorschlag formuliert


Benutzung der Byte Order Mark (BOM) bei UNICODE Kodierungen

Mit dem BOM wird zu Beginn der Datei angegeben, in welcher Ordnung die Bytes bei UTF-16 zu lesen sind. Für UTF-8 ist ebenfalls ein BOM definiert.

Folgende Argumente werden zur Zeit in der Arbeitsgruppe der Programmautoren abgewogen:

  • Durch die Angabe des BOM wird die Identifizierung der gewählten Kodierung erleichtert
  • Ältere Programme verstehen z.T. Dateien mit BOM nicht und brechen den Import ab


Status:

in Diskussion

Versionsangaben bei UNICODE Kodierungen

Zu klären bleibt, ob eine Versionsangabe bei UNICODE nötig oder optional sein soll.

Status:

OFFEN