Der Martin: Mit CMD eine Textdatei erstellen und mit UTF-8 kodieren

Beitrag lesen

Moin,

ich habe da ein kleines Problemchen: Ich würde gerne die Namen aller Dateien in einem Verzeichnis in eine Textdatei schreiben. Diese Datei soll UTF-8 kodiert sein. Nach ein wenig Internet-Suche bin ich soweit:

@echo off
chcp 65001
dir /b>inhalt.txt

AFAIK hat chcp nur dann eine Funktion, wenn mehrere Codepages für die Kommandozeile eingerichtet sind, was eher selten sein dürfte.

Das Problem ist nun, dass die Textdatei nur UTF-8 kodiert wird, wenn sich spezielle Sonderzeichen in mindestens einem der Dateinamen befinden. Tut es das nicht, so wird das Dokument Standart-kodiert (ANSI).

Ich glaube, deine Schlussfolgerung ist falsch. Solange nur Zeichen aus dem ASCII-Bereich vorkommen, lässt sich die tatsächlich verwendete Codierung nicht mehr erkennen, weil ASCII, ISO-Latin (im Windows-Jargon "ANSI") und UTF-8 in diesem Bereich zu 100% deckungsgleich sind. Erst wenn Zeichen außerhalb von ASCII vorkommen, hat ein Editor oder irgendeine andere Software überhaupt einen Anhaltspunkt, die verwendete Codierung zu bestimmen. Wirklich zuverlässig geht das aber in vielen Fällen auch nicht.

Ergo: Wenn Windows also die Codierung nicht erkennen kann und dann einfach "ANSI" behauptet, ist das durchaus korrekt. Es ist aber gleichzeitig auch korrektes UTF-8.

So long,
 Martin

PS: In Zukunft bitte wieder Standar_d_ mit d, wie es sich gehört.