Kenntnisstand

Juli 2023

Beobachtung

Wird anstelle des Textreplikators der ODBC Replikator mit dem Microsoft Access Text-Driver verwendet, so ergibt sich unter Umständen ein Problem mit der Zeichencodierung. Im replizierten Datenbestand werden z. B. Umlaute falsch dargestellt.

Ursache

Dateiformat

Die zu replizierende Textdatei liegt nicht in den vom Treiber standardmäßig unterstützten Formaten ANSI oder OEM vor, sondern z. B. in UNICODE (UTF-16) oder UTF-8.

Hier ist der MetaDirectory Text-Replikator besser aufgestellt:

Beispiel Screenshot: Formatauswahl im Text-Replikator 


Beispiel Screenshot: Formatauswahl im ODBC MS Access Text-Driver

Lösungsmöglichkeiten

Textformat definieren

Wird unter Textformat definieren (Bild oben) auf OEM umgeschaltet, wird eine Datei mit Namen schema.ini im gleichen Verzeichnis wie die zu replizierende Datei angelegt.
Informationen zum
Aufbau findet man unter https://learn.microsoft.com/de-de/sql/odbc/microsoft/schema-ini-file-text-file-driver?view=sql-server-ver16

Beispiel Screenshot: schema.ini


Diese enthält u.a. neben dem Dateinamen der zu replizierenden Datei auch eine Information zum Zeichensatz unter CharacterSet.
Hier kann neben ANSI, OEM und UNICODE auch der Wert 65001 für UTF-8 eingetragen werden.

schema.ini

[orginal.csv]
ColNameHeader=True
Format=Delimited(|)
MaxScanRows=25
CharacterSet=65001
CODE

Anderen Treiber verwenden

Alternativ kann man einen anderen Treiber verwenden: Microsoft.Jet.OLEDB.4.0