Deutsch

How To: Lesen und Schreiben von Shapefile- und dBASE-Dateien, die in verschiedenen Codepages codiert sind

Zusammenfassung

Esri hat in ArcGIS Desktop-Anwendungen (ArcMap, ArcCatalog und ArcGIS Pro) eine Funktionalität zur Codepage-Konvertierung implementiert, mit deren Hilfe diese Desktop-Anwendungen Shapefile- und dBASE-Dateien, codiert in verschiedenen Codepages, lesen und schreiben können. Die Funktionalität zur Codepage-Konvertierung für dBASE-Dateien (dbfDefault) wird durch Angabe des Wertes einer Codepage in der Systemregistrierung aktiviert.Der Header der DBF-Datei enthält eine Referenz auf eine Codepage. Die Codepage in einem Shapefile (.DBF) ist standardmäßig auf UTF-8 (UNICODE) eingestellt. Diese Standardeinstellung wird heutzutage für Internationalisierungsprojekte verwendet.

 

FAQs

Was bewirkt die Einstellung dbfDefault?

Durch Festlegung des Wertes einer Codepage in der Systemregistrierung können Benutzer Shapefile- und dBASE-Dateien, die in dieser Codepage codiert sind, lesen und schreiben. Benutzer können zum Beispiel eine Shapefile, die in OEM codiert ist, exportieren, indem für die Codepage in der Registrierung der Wert OEM festgelegt wird. Benutzer können Shapefiles und dBASE-Dateien, für die die Informationen zur Codepage nicht in der Datei gespeichert sind, auch lesen, wenn sie wissen, in welcher Codepage die Seite codiert ist.

Warum dbfDefault festlegen?
Beim Öffnen einer Shapefile- und dBASE-Datei in ArcMap, ArcCatalog und ArcGIS Pro, fragen Anwendungen die Sprachentreiber-ID (Language Driver ID, LDID) im Header einer dBASE-Datei oder eine zugehörige *.CPG-Datei ab, die jeweils zum Definieren der Codepage dienen und helfen, die Codepage der zu lesenden Datei zu bestimmen. Anhand der abgerufenen Informationen zur Codepage zeigt ArcGIS Desktop die Zeichenfolgen entsprechend an, indem bei Bedarf eine Codepage-Konvertierung durchgeführt wird. Wenn in einer dBASE-Datei eine LDID oder eine CPG-Datei fehlt, wird unterstellt, dass die Datei in der Windows (ANSI/Mehrbyte-)Codepage codiert ist.

Wenn die Desktop-Programme eine in OEM codierte dBASE-Datei lesen, diese Datei aber keine Informationen zur Codepage oder keine LDID oder CPG-Datei enthält, werden die Zeichen nicht korrekt angezeigt. Das liegt daran, dass die Desktop-Programme, da sie die Informationen zur Codepage nicht finden, voraussetzen, dass die Datei in der ANSI-Codepage codiert ist, während sie tatsächlich in OEM codiert ist. Dadurch behandelt ArcGIS die OEM-Datei als in ANSI codierte Datei, was zur falschen Darstellung der in der Datei gespeicherten 8-Bit-Zeichen führt.

Bei den meisten Shapefiles und dBASE-Dateien sollten die Informationen zur Codepage in der Datei gespeichert sein. Da einige Programme, wie zum Beispiel Microsoft Access und Excel, dBASE-Dateien in OEM codieren, die Informationen zur Codepage aber nicht in die LDID eintragen, kann ArcGIS die Dateien nicht ordnungsgemäß lesen. Um dieses Problem zu umgehen, können Benutzer die Funktionalität dbfDefault auf die entsprechende Codepage festlegen, bevor eine Datei, in der die Informationen zur Codepage fehlen, geöffnet wird.

Funktionsweise von dbfDefault

Die Einstellung dbfDefault in der Systemregistrierung definiert die Codepage, mit der eine Shapefile- und dBASE-Datei exportiert wird. Die Codepage einer Shapefile und dBASE-Datei, die in ArcGIS Desktop erstellt werden, werden in der Codepage erstellt, die durch den Wert von dbfDefault in der Systemregistrierung definiert wurde. Wenn zum Beispiel dbfDefault auf OEM festgelegt ist, werden die Shapefile- und dBASE-Dateien, die in ArcMap, ArcCatalog und ArcGIS Pro erstellt werden, in OEM codiert. Wenn dagegen dbfDefault auf ANSI festgelegt ist, werden die Shapefile- und dBASE-Dateien in ANSI codiert.

Wenn in einem Shapefile oder einer dBASE-Datei eine LDID oder eine CPG-Datei fehlt, wird in ArcGIS unterstellt, dass die Datei in der von dbfDefault definierten Codepage codiert wurde. Wenn zum Beispiel dbfDefault auf OEM festgelegt ist und in einer dBASE-Datei sowohl eine LDID als auch eine CPG-Datei fehlt, setzt ArcGIS voraus, dass die Datei in OEM codiert wird, und führt deshalb eine Codepage-Konvertierung durch, um die 8-Bit-Zeichen in ArcMap, ArcCatalog und ArcGIS Pro darzustellen (da diese beiden Anwendungen Windows-Programme sind, die die ANSI-Codepage zum Darstellen von Zeichenfolgen verwenden)

Hinweis: Wenn Benutzer die Einstellung dbfDefault auf eine bestimmte Codepage festgelegt haben, werden alle in ArcGIS exportierten Shapefiles und dBASE-Dateien in dieser Codepage codiert. Bei allen Shapefiles und dBASE-Dateien ohne die Informationen zur Codepage wird vorausgesetzt, dass sie ebenfalls in dieser Codepage codiert sind. Deshalb muss dbfDefault auf den Standardwert (kein Wert) zurückgesetzt werden, sobald der Task abgeschlossen ist.

Mit welchen Programmen kann dbfDefault verwendet werden?
Die einzigen Programme, die von der Einstellung "dbfDefault" betroffen sind, sind ArcGIS Desktop-Anwendungen.

Welche Datenformate sind von dbfDefault betroffen?
Die einzigen Datenformate, die durch die Einstellung dbfDefault zum Angeben der Codepage verwendet werden können, sind Shapefile- und dBASE-Dateien.

Vorgehensweise

In den folgenden Anweisungen wird beschrieben, wie der Wert von dbfDefault in der Systemregistrierung festgelegt wird. Zwei Optionen sind nachstehend aufgeführt.

Warnung: Mit den folgenden Anweisungen werden Änderungen an entscheidenden Teilen Ihres Betriebssystems vorgenommen. Es wird empfohlen, eine Sicherung Ihres Betriebssystems und der Dateien, einschließlich der Registry, anzufertigen, bevor Sie fortfahren. Wenden Sie sich bei Bedarf an einen Fachmann für Computersysteme. Für die Ergebnisse bei falschen Modifikationen, die mit diesen Anweisungen vorgenommen werden, kann Esri keine Garantie übernehmen. Seien Sie also bei den folgenden Schritten vorsichtig, da Sie sie auf eigene Gefahr ausführen.

Option A

  1. Fügen Sie die zwei Schlüssel Common und CodePage in der Systemregistrierung hinzu.
    So fügen Sie einen Schlüssel hinzu:
    1. Öffnen Sie den Registrierungs-Editor: Klicken Sie auf Start > Ausführen, geben Sie regedit ein und klicken Sie auf OK.
    2. Rufen Sie in der Registrierungsstruktur (linker Bereich des Registrierungs-Fensters) folgenden Schlüssel auf:
      • Computer\HKEY_CURRENT_USER\Software\ESRI. Klicken Sie auf den Registrierungsschlüssel Desktop 10.x (das x steht hierbei für die aktuell installierte Version).
      • In ArcGIS Pro klicken Sie auf den Registrierungsschlüssel ArcGIS Pro.
    3. Klicken Sie im MenüBearbeiten auf Neu > Schlüssel.
    4. Fügen Sie einen neuen Schlüssel namens Common hinzu: Geben Sie als Namen Common ein, und drücken Sie die Eingabetaste.
    5. Klicken Sie auf den neuen Schlüssel Common, und fügen Sie einen weiteren Schlüssel namens CodePage hinzu.
  2. Fügen Sie den neuen Zeichenfolgenwert dbfDefault zum Schlüssel CodePage hinzu.
    So fügen Sie einen neuen Zeichenfolgenwert hinzu:
    1. Klicken Sie auf den neuen Schlüssel CodePage.
    2. Klicken Sie im Menü Bearbeiten auf Neu >Zeichenfolge.
    3. Geben Sie den neuen Wert dbfDefault ein und drücken Sie die EINGABETASTE.
  3. Geben Sie einen Wert für Codepage ein.
    1. Wählen Sie den soeben hinzugefügten Eintrag aus. Dabei muss dbfDefault ausgewählt sein und nicht (Default).
    2. Klicken Sie im Menü Bearbeiten auf Ändern.
    3. Geben Sie unter Wert den neuen Wert für die Codepage ein, in diesem Beispiel SJIS, und klicken Sie auf OK.
edit-string.png

Der neue Schlüssel "CodePage" für ArcMap wird folgendermaßen angezeigt:

reg-update-arcmap.png

Die folgenden Listen enthalten die unterstützten Codepage-IDs (zwischen Groß- und Kleinschreibung wird nicht unterschieden).

  • OEM-Codepage-IDs

437 - USA
708 - Arabisch (ASMO 708)
720 - Arabisch (Transparent ASMO), Arabisch (DOS)
737 - Griechisch, Griechisch (DOS)
775 - Baltisch, Baltisch (DOS)
850 - Lateinisch mehrsprachig 1, Westeuropa (DOS)
852 - Lateinisch 2, Mitteleuropa (DOS)
855 - Kyrillisch
857 - Türkisch, Türkisch (DOS)
860 - Portugiesisch, Portugiesisch (DOS)
861 - Isländisch, Isländisch (DOS)
862 - Hebräisch, Hebräisch (DOS)
863 - Französisch (Kanada), Französisch (Kanada) (DOS)
864 - Arabisch, Arabisch (864)
865 - Nordisch, Nordisch (DOS)
866 - Russisch, Kyrillisch (DOS)
869 - Modernes Griechisch, Modernes Griechisch (DOS)
932 - Japanisch, Japanisch (Shift-JIS)
936 - Chinesisch (vereinfacht): Volksrepublik China, Singapur
949 - Koreanisch (Einheitlicher Hangul-Code)
950 - Chinesisch (traditionell): Taiwan, Hongkong, Volksrepublik China
ALARABI - Legt die Codepage 448 fest

  • ANSI-Codepage-IDs

1250 - Mitteleuropa
1251 - Kyrillisch
1252 - Westeuropa
1253 - Griechisch
1254 - Türkisch
1255 - Hebräisch
1256 - Arabisch
1257 - Baltische Sprachen
1258 - Vietnamesisch
BIG5 - Chinesisch: Taiwan, Hongkong, Macau
SJIS - Japanisch (Legt die Codepage 932 fest)

  • ISO-Codepage-IDs

88591 - Lateinisch 1: Westeuropa
88592 - Lateinisch 2: Mittel- und Osteuropa
88593 - Lateinisch 3: Südeuropa
88594 - Lateinisch 4: Nordeuropa
88595 - Kyrillisch
88596 - Arabisch
88597 - Griechisch
88598 - Hebräisch
88599 - Lateinisch 5: Türkisch
885910 - Lateinisch 6: Nordisch
885911 - Thailändisch
885913 - Litauisch
885915 - Lateinisch 9: Westeuropa (nach Upgrade von Lateinisch 1)

  • Unicode-Werte

UTF-8 - Legt die Codepage 65001 fest
UTF8 - Legt die Codepage 65001 fest

Hinweis: Shapefiles können jetzt in UTF-8 gespeichert werden. In UTF-8 codierte Shapefiles werden aber nur in ArcMap, ArcCatalog und ArcGIS Pro erkannt.

Option B
Sie können aber auch eine Batch-Datei verwenden, um die Windows-Registry zu modifizieren.

  1. Erstellen Sie in Notepad die Datei ChangeCodePage.bat mit dem folgenden Code:
Für ArcMap
@ECHO OFF IF "%1"=="" GOTO :EOF reg add HKEY_CURRENT_USER\Software\ESRI\Desktop10.8\Common\CodePage /v dbfDefault /t REG_SZ /d %1 /f
Hinweis: Ändern Sie für ArcMap gegebenenfalls den Pfad entsprechend der ArcMap-Version, die auf dem zu ändernden System installiert ist (z. B. ..\Desktop10.7).

Für ArcGIS Pro

@ECHO OFF IF "%1"=="" GOTO :EOF  reg add HKEY_CURRENT_USER\Software\ESRI\ArcGISPro\Common\CodePage /v dbfDefault /t REG_SZ /d %1 /f
  1. Speichern Sie die Datei in einem Verzeichnis auf dem Computer, der modifiziert werden soll.
  2. Öffnen Sie ein Eingabeaufforderungsfenster (die Batch-Datei muss mit der Option Als Administrator ausführen ausgeführt werden).
  3. Um die Batch-Datei auszuführen (und in diesem Beispiel die Codepage "Japanisch" festzulegen), navigieren Sie zum Verzeichnis der Batch-Datei und führen den folgenden Befehl aus:
ChangeCodePage SJIS

cmd-bat-small.png

Die Registrierungsschlüssel wurden nun für ArcGIS Pro erstellt, und als Codepage wurde "SJIS" festgelegt.

Aktualisierte Registrierung mit neuer Codepage-Einstellung für ArcGIS Pro
 

Zuletzt geändert: 3/13/2021

Artikel-ID: 000013192

Software: ArcMap 10.8.1, 10.8, 10.7.1, 10.7, 10.6, 10.5.1, 10.5, 10.4.1, 10.4, 10.3.1, 10.3, 10.2.2 ArcGIS Pro 2.4.3, 2.4.2, 2.4.1, 2.4, 2.3.3, 2.3.2, 2.3.1, 2.3, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2, 2.1.3, 2.1.2, 2.1.1, 2.1, 2.0.1, 2.0, 1.4.1, 1.4, 1.3.1, 1.3, 1.2