Chaque flux de données est une séquence d'octets. Ces octets encodent une séquence de caractères selon l'encodage UTF-8, tel que décrit dans la section 10.2 de la norme ISO/IEC 10646:2020 et dans la RFC 3629.
Les versions précédentes autorisaient plusieurs encodages de caractères, ANSEL étant utilisé par défaut. La version 7.0 utilise uniquement l'encodage de caractères UTF-8.
Un fichier contenant un flux de données GEDCOM FamilySearch doit utiliser l'extension de nom de fichier .ged.
Le premier caractère de chaque flux de données doit être U+FEFF, la marque d'ordre des octets. S'il est présent, ce caractère initial n'a aucune signification dans le cadre de cette spécification, mais sert à indiquer aux autres systèmes que le fichier utilise l'encodage de caractères UTF-8.
Certains caractères ne doivent apparaître nulle part dans un flux de données :
Il convient de tenir compte du fait que le nombre d'octets par caractère et le nombre de caractères par glyphe sont variables lors de l'utilisation d'UTF-8. L'utilisation de bibliothèques de traitement et d'affichage compatibles Unicode est recommandée.
Les grammaires au niveau des caractères sont spécifiées dans ce document en utilisant la forme Backus-Naur augmentée (ABNF) telle que définie dans la STD 68 et modifiée dans la RFC 7405. Nous utilisons le terme « production » pour désigner une règle ABNF, appuyée par toutes les autres règles auxquelles elle fait référence.
Ce qui suit est un bref résumé des parties de l'ABNF, telles que définies par la norme STD 68 et la RFC 7405, qui sont utilisées dans ce document.:
- Une règle se compose d'un nom de règle, d'un signe égal
=et d'une ou plusieurs options.- Les options sont séparées par un slashe
/.- La première ligne d'une règle ne doit pas être indentée; les lignes suivantes doivent l'être.
- Les commentaires sont introduits par un point-virgule
;.- Les points de code Unicode sont indiqués en hexadécimal, précédés de
%x. Les plages de points de code autorisés sont indiquées par un tiret-.- Les guillemets doubles délimitent les chaînes littérales. Les chaînes littérales ne sont pas sensibles à la casse, sauf si elles sont précédées de
%s.- Les parenthèses
()regroupent les éléments. Les crochets[]indiquent un contenu facultatif. Faire précéder un groupe ou un élément par*signifie qu'un nombre quelconque d'éléments peut être inclus. Faire précéder un groupe ou un élément par1*signifie qu'un ou plusieurs éléments peuvent être inclus.
Les caractères interdits peuvent être exprimés en ABNF comme production banned:
banned = %x00-08 / %x0B-0C / %x0E-1F ; C0 autre que LF CR et Tab
/ %x7F ; DEL
/ %x80-9F ; C1
/ %xD800-DFFF ; Caractères de substitution
/ %xFFFE-FFFF ; invalide
; Toutes les autres règles supposent l'absence de tout caractère interditToutes les autres expressions ABNF de ce document supposent l'absence de tout caractère correspondant à la production banned.
Ce document utilise également les jeux de caractères nommés suivants en ABNF: