2016-03-23 3 views
4

Ich muss in einem Batch-Skript auf einen Ordner verweisen, der das Zeichen "æ" enthält.Batch-Datei mit Nicht-ASCII-Zeichen

Ich laufe in Schwierigkeiten, wenn ich das Skript obwohl. Die Eingabeaufforderung liest die Nicht-ASCII-Zeichen falsch. Ich habe versucht, die Datei als ANSI und Unicode zu speichern. Ich habe Windows   7.

Hier ist ein minimales Beispiel:

echo øl 
+2

Uh, ich weiß, wie ich das beheben kann, aber ich weiß nicht genug über die Mechanik dahinter für eine richtige Antwort. Im Grunde ersetzen Sie 'æ' durch' '' (das ist ALT + 0145). – SomethingDark

Antwort

4

Es ist, ob ANSI noch Unicode in Konsolenfenster standardmäßig verwendet. Standardmäßig verwendet Windows für die Konsole eine OEM Codepage.

Welche OEM-Codepage verwendet wird, hängt von den Windows-Regions- und Spracheinstellungen ab. Für die USA und Kanada lautet die Standard-OEM-Codepage , für westeuropäische Länder lautet die Standardcodepage 850.

Für die USA, Kanada und Westeuropa ist die Nicht-Unicode-Codepage in den GUI-Fenstern Windows-1252.

Das Zeichen æ hat den Dezimalcode (Hex. E6) in der Codepage Windows-1252 sowie in der Unicode-Tabelle. Aber in OEM-Codepage 437 und 850 ist der Dezimalcode dieses Zeichens (Hex. 91).

Sie müssen dieses Zeichen entweder mit der von SomethingDark vorgeschlagenen Methode in die Stapeldatei einfügen oder die Stapeldatei im Texteditor direkt mit der entsprechenden OEM-Codepage bearbeiten.

Ich benutze UltraEdit zum Bearbeiten von Textdateien. Ich habe UltraEdit für die automatische Verwendung der vom System definierten OEM-Codepage (Code-Seite 850 in meinem Fall) für Dateien mit der Erweiterung BAT und CMD konfiguriert und verwende für alle anderen Nicht-Unicode-Textdateien die System-Codepage für GUI-Fenster (Codepage 1252) in meinem Fall). UltraEdit führt auch die notwendige Konvertierung von Unicode oder Windows-1252 in die OEM-Codepage 850 beim Einfügen eines Textes, der zum Beispiel im Browser kopiert wurde, in die Batch-Datei durch. Und UltraEdit konvertiert die OEM-codierten Zeichen auch von 850 in 1252 und Unicode beim Kopieren eines ausgewählten Textes in Batch-Datei in die Zwischenablage.

Um herauszufinden, welche OEM-Codepage auf Ihrem Computer in Konsolenfenstern verwendet wird, öffnen Sie ein Eingabeaufforderungsfenster und führen Sie entweder den Befehl chcp oder mode con aus.

Verwandte Themen