FTP Umwandlung UTF-8 in ANSI
Moin Zusammen,
gibt es eine Möglichkeit das CSV Dateien direkt vom FTP Server oder beim Upload vom UTF-8 Format in ANSI Konvertiert werden?
Ohne jetzt viel zu programmieren etc? Gibt es da ein Tool für?
Grüße und Danke
x
gibt es eine Möglichkeit das CSV Dateien direkt vom FTP Server oder beim Upload vom UTF-8 Format in ANSI Konvertiert werden?
Ohne jetzt viel zu programmieren etc? Gibt es da ein Tool für?
Grüße und Danke
x
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 366265
Url: https://administrator.de/forum/ftp-umwandlung-utf-8-in-ansi-366265.html
Ausgedruckt am: 10.04.2025 um 22:04 Uhr
12 Kommentare
Neuester Kommentar
Servus.
Welches OS?
In der Bash kannst du iconv nutzen (unter Windows kannst du das ebenfalls nutzen (cygwin und Co.))
Für Windows gibt ja auch einiges dazu
https://stackoverflow.com/questions/13130214/how-to-convert-a-batch-file ...
Grüße Uwe
Welches OS?
In der Bash kannst du iconv nutzen (unter Windows kannst du das ebenfalls nutzen (cygwin und Co.))
iconv -f UTF-8 -t CP1252 file.csv >file.ansi.csv
https://stackoverflow.com/questions/13130214/how-to-convert-a-batch-file ...
Grüße Uwe
Wo hast du das abenteuerliche Konstrukt kopiert
?
Wenn so dann für die "direkte Konsoleneingabe"
(Für eine Batch müssen die Prozentzeichen ja verdoppelt werden!)
Du kannst ja nicht ohne temp. Zwischenkopie aus einer Datei gleichzeitig lesen und wieder überschreiben.
Aber teste erst mal mit einer einzelnen Datei ob inconv so bei deinen Files überhaupt das macht was du willst, ich glaube nämlich dass du es genau anders rum brauchst. Und vertraue bitte nicht auf "Notepad" das gaukelt einem immer was vor.
Am einfachsten du lädst mal eins von den Dateien im Originalformat hoch oder kontaktierst mich per PN dann check ich das für dich.
Wenn so dann für die "direkte Konsoleneingabe"
(Für eine Batch müssen die Prozentzeichen ja verdoppelt werden!)
for %a in ("c:\Ordner\*.csv") do iconv.exe -f UTF-8 -t CP1252 "%a" >"c:\neuerordner\%~nxa"
Aber teste erst mal mit einer einzelnen Datei ob inconv so bei deinen Files überhaupt das macht was du willst, ich glaube nämlich dass du es genau anders rum brauchst. Und vertraue bitte nicht auf "Notepad" das gaukelt einem immer was vor.
Am einfachsten du lädst mal eins von den Dateien im Originalformat hoch oder kontaktierst mich per PN dann check ich das für dich.
Schau mit dem Hex-Editor rein dann weist du's (UTF-8 meist bis zu 4 bytes pro Zeichen, Ansi 2), ich hab keine deiner Files und weiß nicht wo du hin schaust ? Glaskugel ...
.
https://de.wikipedia.org/wiki/UTF-8#Darstellung_in_Editoren
https://de.wikipedia.org/wiki/UTF-8#Darstellung_in_Editoren
Zitat von @Xaero1982:
Notepad++ zeigt eben UTF8 an nach der Umwandlung, aber ich glaub das is wurscht. In den Dateien sind eh keine Umlaute und die Dateien mit Umlaute sind korrekt.
UTF-8 und ASCII sind im Bereich der ASCII Zeichen deckungsgleich. Besitzt eine Datei weder ein Byte Order Mark, noch Zeichen die den ASCII Bereich überschreiten, dann kann kein Editor dort eine Unterscheidung treffen. Noch schlimmer ist es mit ANSI Codierten Dateien. Diese enthalten keinerlei Hinweis auf die Codierung. Was ein Editor hier außerhalb des ASCII Bereichs anzeigt, ist im Zweifelsfall falsch. Nur dann wenn das schreibende und das lesende Programm die gleiche Codierung verwendet, werden Zeichen korrekt angezeigt. Es ist also immer ratsam eine Unicode-unterstützende Codierung, wie UTF-8 oder (unter Windows verbreiteter) UTF-16 zu verwenden. Anderenfalls ist es immer davon abhängig, welche heuristischen/statistischen Algorithmen ein Editor nutzt um die Codierung zu "raten" oder ob bspw. die lokale ANSI Einstellung deines Windows Systems herangezogen wird. Das beantwortet deinNotepad++ zeigt eben UTF8 an nach der Umwandlung, aber ich glaub das is wurscht. In den Dateien sind eh keine Umlaute und die Dateien mit Umlaute sind korrekt.
Notepad++ doof oder was ist nun korrekt?
Weder ist Notepad++ doof, noch ist UTF-8 richtig oder falsch. Solange der Text nur ASCII enthält, ist ASCII so richtig wie UTF-8 und so richtig wie jede beliebige ANSI Codepage.Weder noch. UTF-8 kann 1-4 Bytes pro Zeichen benötigen, wobei du kaum Zeichen in einer Datei haben wirst, die tatsächlich 4 Bytes breit sind. ANSI ist der zum Scheitern verurteilte Versuch, alle möglichen Zeichen nur mit einem Byte Breite zu speichern. Um das zu erreichen werden Code Pages oder Character Maps benötigt, die als Übersetzungstabellen zwischen dem gelesenen Byte und dem assoziierten Unicode Codepoint fungieren. Da es, wie oben geschrieben, keinen Handshake zwischen schreibenden und lesenden Programm gibt, ist es Glückssache wenn der Text richtig dargestellt wird.
Beispiel: Ein Russe schreibt das Zeichen д in den Windows Editor und speichert die Datei ANSI codiert. Seine ANSI Codepage ist standardmäßig 1251, somit steht das Byte E4 in der Datei. Bekommst du die Datei und öffnest sie, dann erscheint bei dir ein ä, da das E4 in deiner Standard Codepage (1252) eben als völlig anderes Zeichen interpretiert wird und der Editor keine Ahnung haben kann woher die Datei stammt und welche Codierung ursprünglich verwendet worden ist
Steffen