PROCÉDURE

lire et écrire des fichiers de formes et des fichiers codés dans différentes pages de code

Last Published: April 14, 2023

Résumé

Esri a implémenté une fonctionnalité appelée CODE PAGE CONVERSION dans ArcGIS for Desktop (ArcMap, ArcCatalog et ArcToolbox) qui permet aux applications de bureau de lire et d’écrire les fichiers de formes et les fichiers dBASE codés avec différentes pages de code. Cette fonctionnalité de conversion pour les fichiers dBASE (appelée dbfDefault) est activée en spécifiant une valeur de page de code dans le Registre système. Il s’agit d’une fonctionnalité analogue à la fonction &CODEPAGE utilisée dans ArcInfo Workstation.

Pour les versions antérieures à ArcGIS 10.2.1, les procédures suivantes permettent de définir le comportement de la page de code souhaitée. Si ArcGIS for Desktop 10.2.1 ou 10.2.2 est installé, téléchargez et installez les correctifs décrits dans l’article 42646 de la base de connaissance avant d’appliquer les instructions suivantes.

Remarque :
Dans l’en-tête de chaque fichier de formes (.DBF), une référence renvoyant à une page de code est incluse. Avant ArcGIS 10.2.1, la page de code utilisée correspondait aux paramètres régionaux de l’utilisateur. Si, par exemple, l’utilisateur tire parti des paramètres régionaux japonais, la page de code du fichier .DBF est « Shift-JIS ».

A compter de la version ArcGIS 10.2.1, la page de code par défaut est au format UTF-8 (UNICODE) pour le fichier de formes (.DBF). Cette modification est liée aux pratiques d’internationalisation actuelles et assure que les données sont lisibles.

FAQ

Que fait le paramètre dbfDefault ?

En définissant une valeur de page de code dans le Registre système, les utilisateurs sont en mesure de lire et d’écrire les fichiers de formes et les fichiers codés selon cette page de code. Ainsi, les utilisateurs peuvent exporter un fichier de formes codé en OEM en définissant la valeur du Registre de page de code sur OEM. Les utilisateurs peuvent également lire les fichiers de formes et les fichiers dBASE qui ne disposent d’aucune information sur la page de code dans le fichier, dans la mesure où ils connaissent la page de code utilisée pour coder le fichier.

Pourquoi définir dbfDefault ?
Lors de l’ouverture d’un fichier de formes et d’un fichier DBASE dans ArcGIS Desktop, les programmes de bureau recherchent l’identifiant du pilote de langue (LDID) indiqué dans l’en-tête d’un fichier dBASE ou d’un fichier *.CPG associé. Ces deux fichiers utilisés pour définir la page de code contribuent à déterminer la page de code du fichier à lire. En fonction des informations sur la page de code obtenues, ArcGIS for Desktop affiche les chaînes en procédant, au besoin, à la conversion de page de code. Si un fichier dBASE n’a pas de LDID, ni de fichier .CPG, il part du principe que le fichier est codé au format de page de code Windows (ANSI/Multi-octets).

Si les programmes de bureau lisent un fichier dBASE codé en OEM mais que le fichier ne contient aucune information sur la page de code ou ne comporte ni LDID ni fichier .CPG, les caractères ne s’affichent pas correctement. Cela est dû au fait que les programmes de bureau présument que le fichier est codé au format ANSI étant donné qu’ils ne trouvent aucune information sur la page de code alors que le fichier est, en réalité, codé au format OEM. En d’autres termes, ArcGIS traite le fichier OEM comme s’il était codé en ANSI, ce qui entraîne un affichage incorrect des caractères 8 bits du fichier.

La plupart des fichiers de formes et dBASE doivent détenir des informations sur la page de code. Certains programmes, tels que Microsoft Access 2000 et Excel 2000, codent les fichiers dBASE en OEM, mais n’incluent pas les informations sur la page de code dans le LDID. Par conséquent, ArcGIS ne lit pas correctement les fichiers. Pour éviter ce problème, les utilisateurs peuvent définir dbfDefault sur la page de code appropriée avant d’ouvrir un fichier sans informations sur la page de code.

Comment fonctionne le paramètre dbfDefault ?
Le paramètre dbfDefault figurant dans le Registre système définit la page de code dans laquelle un fichier de formes et un fichier dBASE sont exportés. Un fichier de formes et un fichier dBASE créés dans ArcGIS Desktop sont codés dans la page de code définie par la valeur « dbfDefault » du Registre système. Si, par exemple, dbfDefault a pour valeur OEM, les fichiers de formes et les fichiers dBASE créés dans ArcMap, ArcCatalog et ArcToolbox sont codés au format OEM. De même, si « dbfDefault » est configuré sur ANSI, les fichiers de formes et les fichiers dBASE sont codés en ANSI.

Il est important de noter l’exception suivante : les fichiers de formes et les fichiers dBASE exportés à partir de couvertures d’ArcCatalog et d’ArcToolbox dans d’autres langues que l’espagnol et l’arabe sont codés au format OEM, quelle que soit la valeur du paramètre dbfDefault. En effet, la conversion d’une couverture en fichier de formes dans ArcToolbox fait appel à la fonctionnalité d’ArcInfo Workstation dans laquelle les couches définies fonctionnent en DOS. Aussi, les fichiers en sortie sont toujours codés selon la page de code OEM ou la page de code DOS. Les fichiers de formes exportés des couvertures d’ArcCatalog et d’ArcToolbox en espagnol ou en arabe sont codés en ANSI. Les fichiers de formes exportés à partir d’une couverture provenant d’ArcCatalog ou d’ArcToolbox sont toujours codés dans la page de code OEM (sauf en espagnol).

La même logique s’applique aux fichiers de formes et fichiers dBASE lus dans ArcGIS for Desktop. Si un fichier de formes ou un fichier dBASE n’a pas de LDID, ni de fichier .cpg, ArcGIS suppose que le fichier est codé dans la page de code définie par dbfDefault. Si, par exemple, le paramètre dbfDefault est défini sur OEM et qu’un fichier dBASE ne possède ni LDID, ni fichier .cpg, ArcGIS for Desktop part du principe que le fichier est codé en OEM ; il réalise une conversion de page de code pour afficher les caractères 8 bits dans ArcMap et ArcCatalog (étant donné que ces deux applications sont des programmes Windows utilisant la page de code ANSI pour l’affichage des chaînes).
 
Remarque :
Si les utilisateurs ont défini le paramètre dbfDefault sur une page de code donnée, tous les fichiers de formes et fichiers dBASE exportés dans ArcGIS son codés dans cette page de code. Tous les fichiers de formes et fichiers dBASE sans informations sur la page de code sont également censés être dans cette page de code. En conséquence, il est important de paramétrer dbfDefault sur la valeur par défaut (aucune valeur) une fois la tâche terminée.
Quels sont les programmes avec lesquels dbfDefault peut être utilisé ?
ArcGIS for Desktop est le seul programme concerné par le paramètre dbfDefault. Les autres programmes, comme ArcInfo Workstation et ArcView 3.x, ou d’autres paramètres de page de code tels que la fonction &CODEPAGE utilisée dans ArcInfo Workstation et le profil de page de code utilisé dans ArcView 3.x, ne sont pas concernés.

Dans ArcInfo Workstation :
  • ARCSHAPE avec &CODEPAGE OEM créé un fichier de formes au format OEM
  • ARCSHAPE avec &CODEPAGE ANSI créé un fichier de formes au format ANSI
  • INFODBASE avec &CODEPAGE OEM créé un fichier dBASE au format OEM
  • INFODBASE avec &CODEPAGE ANSI créé un fichier dBASE au format ANSI
Dans ArcView 3.x :
  • Les fichiers de formes et fichiers dBASE sont enregistrés dans la page de code ANSI.
Quels sont les formats de données affectés par dbfDefault ?
Les fichiers de formes et les fichiers dBASE sont les seuls formats de données pouvant être utilisés par le paramètre dbfDefault afin de spécifier la page de code. Les autres formats de données, tels que la couverture ou la géodatabase personnelle, ne sont pas affectés par le paramètre dbfDefault.

Dans ArcGIS for Desktop (indépendamment de la configuration de dbfDefault) :
  • Les géodatabases personnelles sont enregistrées au format Unicode
  • Les tables de géodatabases personnelles sont enregistrées au format Unicode
  • Les couvertures sont enregistrées dans la page de code ISO
  • Les fichiers INFO sont enregistrés dans la page de code ISO
  • Les fichiers Interchange sont enregistrés dans la page de code ANSI
  • Les fichiers texte sont enregistrés dans la page de code ANSI

Procédure

Les instructions ci-après décrivent comment définir la valeur du paramètre dbfDefault dans le Registre système. Vous avez le choix entre deux options.
Avertissement :
Les instructions ci-après impliquent de modifier des parties essentielles de votre système d’exploitation. Il est recommandé de sauvegarder votre système d’exploitation et vos fichiers, y compris le Registre, avant de continuer. Consultez un spécialiste des systèmes informatiques, si nécessaire.

Esri ne garantit pas les résultats obtenus en cas de modifications non conformes aux consignes. Par conséquent, soyez prudent, car les modifications que vous apportez sont à vos risques et périls.

Option A
  1. Ajoutez les deux clés appelées « Common » et « CodePage » au Registre système.
    Pour ajouter une clé :
    1. Ouvrez l’Editeur du Registre : cliquez sur Démarrer >Exécuter, tapez regedit, puis cliquez sur OK.
    2. Dans l’arborescence du Registre (volet gauche de la fenêtre du Registre), accédez à « My Computer\HKEY_CURRENT_USER\Software\ESRI » et cliquez sur la clé de Registre « Desktop10.x ». Pour Pro, cliquez sur la clé de Registre« Pro1.0 ». (Pour les versions 9.3.1 et antérieures, accédez à « My Computer\HKEY_CURRENT_USER\Software » et cliquez sur la clé de Registre ESRI.)
    3. Ajoutez un nouvelle clé appelée « Common » (dans le menu Edition :
      Accédez à Nouveau, sélectionnez Clé, tapez le nom « Common » et appuyez sur Entrée).
    4. Cliquez sur la clé de Registre que vous venez de créer (Common) et ajoutez une nouvelle clé appelée « CodePage ».
  2. Ajoutez la nouvelle valeur de chaîne « dbfDefault » à la clé CodePage.
    Pour ajouter une valeur de chaîne :
    1. Cliquez sur la clé CodePage.
    2. Dans le menu Edition, cliquez sur Nouveau et « Valeur de chaîne ».
    3. Saisissez « dbfDefault » comme nouvelle valeur et appuyez sur la touche Entrée.

      La nouvelle clé CodePage doit se présenter comme suit :
      [O-Image] Screenshot of dbfDefault in
       
  3. Saisissez une valeur de page de code.
    1. Sélectionnez l’entrée que vous venez d’insérer ; il est important que dbfDefault soit sélectionné et non la valeur (par défaut).
    2. Dans le menu Edition, cliquez sur Modifier.
    3. Sous Données de la valeur, saisissez la nouvelle valeur de page de code et cliquez sur OK.
      Vous trouverez ci-après les listes des identifiants de page de code pris en charge (ils ne sont pas sensibles à la casse).
  • Page Identifiants de page de code OEM
437 - Etats-Unis
708 - Arabe (ASMO 708)
720 - Arabe (ASMO transparent), Arabe (DOS)
737 - Grec, Grec (DOS)
775 - Balte, Balte (DOS)
850 - Latin I multilingue 1, Europe occidentale (DOS)
852 - Latin 2 , Europe centrale (DOS)
855 - Cyrillique
857 - Turc, Turc (DOS)
860 - Portugais, Portugais (DOS)
861 - Islandais, Islandais (DOS)
862 - Hébreu, Hébreu (DOS)
863 - Français canadien, Français canadien (DOS)
864 - Arabe , Arabe (864)
865 - Nordique, Nordique (DOS)
866 - Russe, Cyrillique (DOS)
869 - Grec moderne, Grec moderne (DOS)
932 - Japonais, Japonais (Shift-JIS)
936 - Chinois (simplifié) : République populaire de Chine, Singapour
949 - Coréen (Code Hangul unifié)
950 - Chinois traditionnel : Taïwan, Hong-Kong, République populaire de Chine
ALARABI - Définit la page de code sur 448
  • Page Identifiants de page de code ANSI
1250 - Europe centrale
1251 - Cyrillique
1252 - Europe occidentale
1253 - Grec
1254 - Turc
1255 - Hébreu
1256 - Arabe
1257 - Langues baltes
1258 - Vietnamien
Big5 - Chinoise : Taïwan, Hong-Kong, Macao
SJIS - Japonais (définit la page de code sur 932)
  • Page Identifiants de page de code ISO
88591 - Latin 1 : Europe occidentale
88592 - Latin 2: Europe centrale et de l’Europe de l’Est
88593 - Latin 3 : Europe du Sud
88594 - Latin 4 : Europe du Nord
88595 - Cyrillique
88596 - Arabe
88597 - Grec
88598 - Hébreu
88599 - Latin 5 : Turc
885910 - Latin 6 : Nordique
885911 - Thaï
885913 - Lituanien
885915 - Latin 9 : Europe occidentale (mise à niveau de Latin 1)
  • Valeurs Unicode
UTF-8 - Définit la page de code sur 65001
UTF8 - Définit la page de code sur 65001
Remarque :
Les fichiers de formes peuvent maintenant être stockés au format UTF-8. Toutefois, les fichiers de formes en UTF-8 ne sont reconnus que dans ArcGIS for Desktop.

Option B

Vous pouvez également utiliser un fichier de commandes pour modifier le Registre Windows.
  1. Dans le Bloc-notes, créez le fichier ChangeCodePage.bat contenant le code suivant :
    Code :
    @ECHO OFF
    IF "%1"=="" GOTO :EOF 
    reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.3\Common\CodePage /v dbfDefault /t REG_SZ /d %1 /f
    Remarque :
    Adaptez le chemin d’accès en fonction de la version d’ArcGIS installée sur le système à modifier, par exemple, .\Desktop10.1).
  2. Enregistrez le fichier dans un dossier de la machine à modifier.
  3. Ouvrez une fenêtre de ligne de commande (il peut être nécessaire d’utiliser l’option « Exécuter en tant qu’administrateur » pour continuer).
  4. Pour exécuter le fichier de commandes (et modifier la page de code en japonais, par exemple), accédez au répertoire contenant le fichier de commandes et exécutez la commande suivante :
    ChangeCodePage SJIS
    Les clés de Registre sont créées et la page de code est définie sur SJIS.
[O-Image]

ID d’article:000013192

Obtenir de l’aide auprès des experts ArcGIS

Contacter le support technique

Télécharger l’application Esri Support

Accéder aux options de téléchargement

En savoir plus sur ce sujet