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