UTF-8-Codierung (CHCP 65001) in PowerShell

  1. Unicode in PowerShell
  2. Ändern der Systemgebietsschema zur Nutzung der UTF-8-Codierung in Windows PowerShell
  3. Einstellung der Codierung in der Variable $PSDefaultParameterValues zur Verwendung der UTF-8-Codierung in Windows PowerShell
  4. Verwenden des chcp-Befehls zum Wechseln zur UTF-8-Codierung in Windows PowerShell
  5. Vorteile der Verwendung der UTF-8-Codierung in PowerShell
  6. Fazit
UTF-8-Codierung (CHCP 65001) in PowerShell

UTF-8-Codierung, dargestellt durch CHCP 65001 in PowerShell, ist ein entscheidendes Werkzeug für die Arbeit mit mehrsprachigen und speziellen Zeichen in der Konsole. Dieser Artikel bietet einen umfassenden Leitfaden zur Nutzung der UTF-8-Codierung in PowerShell, von der Bedeutung bis zur praktischen Umsetzung.

Unicode in PowerShell

Unicode ist ein weltweiter Standard für die Zeichencodierung. Er definiert, wie Zeichen in Textdateien, Webseiten und anderen Dokumenten dargestellt werden.

Das Computersystem verwendet Unicode, um Zeichen und Zeichenfolgen zu manipulieren. Die Standardcodierung in PowerShell ist Windows-1252.

Unicode wurde entwickelt, um Zeichen aus allen Sprachen der Welt zu unterstützen. PowerShell unterstützt standardmäßig eine Unicode-Zeichencodierung.

UTF-8 und UTF-16 sind die gängigsten Unicode-Codierungen. PowerShell verwendet immer BOM in allen Unicode-Codierungen, mit Ausnahme von UTF7.

Das BOM (Byte-Order-Mark) ist eine Unicode-Signatur, die in den ersten Bytes einer Datei oder Textstroms enthalten ist und die Unicode-Codierung angibt.

Verständnis der UTF-8-Codierung

UTF-8 ist ein Standard für die Zeichencodierung, der variable Breite verwendet, um Text darzustellen. Es kann nahezu alle Zeichen in Unicode codieren, was es zur am weitesten verbreiteten Zeichencodierung im Internet macht.

Im Kontext von PowerShell sorgt die UTF-8-Codierung dafür, dass Zeichen aus verschiedenen Sprachen, Symbole und spezielle Zeichen korrekt im Konsolenfenster angezeigt und verarbeitet werden.

Ändern der Systemgebietsschema zur Nutzung der UTF-8-Codierung in Windows PowerShell

Es gibt eine Option, um das Systemgebietsschema (aktuelle Sprache für nicht-Unicode-Programme) in Windows zu ändern. Diese Funktion befindet sich jedoch noch in der Beta-Phase.

Gehen Sie zu Regionaleinstellungen im Systemsteuerung oder öffnen Sie intl.cpl über das Ausführen-Programm (Windows+R).

Ändern Sie die Systemgebietsschemaeinstellung, um die UTF-8-Codierung in PowerShell zu verwenden.

Öffnen Sie die Registerkarte Verwaltung und klicken Sie auf Systemgebietsschema ändern. Aktivieren Sie dann die Beta-Option, wie im Bild unten gezeigt.

verwenden Sie Unicode UTF-8 für weltweite Sprachunterstützung

Drücken Sie anschließend OK und starten Sie den Computer neu, um die Einstellungen anzuwenden.

Nach dem Neustart des Computers können Sie die Variable $OutputEncoding überprüfen, um die aktuelle Codierung anzuzeigen.

$OutputEncoding

Ausgabe:

Wie Sie sehen können, ist die aktuelle Codierung Unicode (UTF-8).

BodyName          : utf-8
EncodingName      : Unicode (UTF-8)
HeaderName        : utf-8
WebName           : utf-8
WindowsCodePage   : 1200
IsBrowserDisplay  : True
IsBrowserSave     : True
IsMailNewsDisplay : True
IsMailNewsSave    : True
IsSingleByte      : False
EncoderFallback   : System.Text.EncoderReplacementFallback
DecoderFallback   : System.Text.DecoderReplacementFallback
IsReadOnly        : True
CodePage          : 65001

Jetzt können Sie die Zeichen anderer Sprachen in PowerShell anzeigen.

Get-Content test.txt

Ausgabe:

만나서 반가워요

Einstellung der Codierung in der Variable $PSDefaultParameterValues zur Verwendung der UTF-8-Codierung in Windows PowerShell

$PSDefaultParameterValues ist eine integrierte automatische Variable in PowerShell, mit der Sie Standardwerte für die Parameter von Cmdlets festlegen können. Das bedeutet, dass Sie Standardwerte für Parameter von Cmdlets angeben können, ohne sie jedes Mal explizit angeben zu müssen, wenn Sie das Cmdlet verwenden.

Sie können den folgenden Befehl ausführen, um die UTF-8-Codierung in PowerShell zu aktivieren.

$PSDefaultParameterValues = @{'*:Encoding' = 'utf8' }

Es gilt nur für die aktuelle PowerShell-Konsole. Es wird auf die Standardwerte zurückgesetzt, nachdem Sie das PowerShell-Fenster verlassen.

Get-Content test.txt

Ausgabe:

만나서 반가워요

Mehrere Cmdlets in PowerShell haben den Parameter -Encoding, um die Codierung für verschiedene Zeichensätze anzugeben. Einige davon sind Add-Content, Set-Content, Get-Content, Export-Csv, Out-File usw.

Der Parameter -Encoding unterstützt diese Werte: ascii, bigendianunicode, oem, unicode, utf7, utf8, utf8BOM, utf8NoBOM, utf32.

Verwenden des chcp-Befehls zum Wechseln zur UTF-8-Codierung in Windows PowerShell

Um zur UTF-8-Codierung in PowerShell zu wechseln, verwenden Sie den Befehl chcp, gefolgt von 65001:

chcp 65001

Dieser Befehl sagt PowerShell, dass sie die UTF-8-Codierung für die Zeichen-Eingabe und -Ausgabe verwenden soll.

Hier ist, was dieser Befehl im Detail bewirkt:

  • chcp: Dies ist ein Befehl in der Windows-Eingabeaufforderung und PowerShell. Er steht für „Change Code Page“. Die Code-Seite bestimmt, wie Zeichen in der Konsolenansicht kodiert und angezeigt werden.

  • 65001: In diesem Kontext repräsentiert 65001 die Code-Seite für die UTF-8-Codierung. UTF-8 ist eine variable Breite Zeichencodierung, die in der Lage ist, alle möglichen Zeichen oder Codepunkte in Unicode zu kodieren.

    • UTF-8: Es ist eine weit verbreitete Zeichencodierung, die nahezu alle Zeichen aus allen menschlichen Sprachen darstellen kann. Sie ist besonders im Internet verbreitet.
  • Wechseln zu UTF-8 (65001): Wenn Sie chcp 65001 ausführen, sagen Sie PowerShell, dass sie die UTF-8-Codierung für Zeichen-Eingabe und -Ausgabe in der Konsole verwenden soll. Dies kann hilfreich sein, wenn Sie mit Textdaten arbeiten, die Zeichen aus verschiedenen Sprachen und Symbolen enthalten.

    Wenn Sie beispielsweise mit Dateien oder Daten umgehen, die nicht-englische Zeichen enthalten, sorgt das Setzen der Code-Seite auf UTF-8 dafür, dass diese Zeichen korrekt in der Konsole angezeigt werden.

Zurücksetzen auf die Standard-Code-Seite

Denken Sie daran, dass das Ändern der Code-Seite das Verhalten einiger Konsolenanwendungen beeinträchtigen kann. Es ist daher allgemein eine gute Praxis, die Code-Seite auf die Standard-Code-Seite (normalerweise 437 für Englisch) zurückzusetzen, wenn Sie mit UTF-8 fertig sind.

Um die Code-Seite auf die Standardwerte zurückzusetzen, können Sie den Befehl verwenden:

chcp 437

Dies wird wieder zur Standard-Code-Seite für Ihr System wechseln, die für englischen Text geeignet ist.

Vorteile der Verwendung der UTF-8-Codierung in PowerShell

  1. Mehrsprachige Unterstützung: UTF-8 ermöglicht es PowerShell, Text in mehreren Sprachen zu verarbeiten, was eine korrekte Anzeige und Verarbeitung von Zeichen aus verschiedenen Schriftsystemen gewährleistet.
  2. Besondere Zeichen: Es ist entscheidend beim Umgang mit besonderen Zeichen wie Emojis oder mathematischen Symbolen, die in Standard-Codierungen nicht dargestellt werden.
  3. Dateiverarbeitung: Wenn Sie mit Textdateien arbeiten, die Zeichen aus verschiedenen Sprachen enthalten, sorgt die Verwendung von UTF-8 für genaue Dateioperationen.
  4. Datenverarbeitung: Wenn Sie mit Daten arbeiten, die nicht-englische Zeichen enthalten, sorgt das Setzen der Code-Seite auf UTF-8 für eine korrekte Handhabung und Verarbeitung.

Mögliche Überlegungen

  1. Konsolenanwendungen: Das Ändern der Code-Seite kann das Verhalten einiger Konsolenanwendungen beeinflussen. Setzen Sie immer auf die Standard-Code-Seite (chcp 437 für Englisch) zurück, wenn Sie mit UTF-8 fertig sind.
  2. Kompatibilität: Stellen Sie sicher, dass die Programme oder Skripte, die Sie in PowerShell ausführen, die UTF-8-Codierung unterstützen können. Ältere Anwendungen unterstützen dies möglicherweise nicht vollständig.

Praktische Anwendungsfälle

  1. Lesen von Dateien: Wenn Sie Textdateien mit nicht-englischen Zeichen lesen, sorgt die Verwendung von UTF-8 für eine genaue Darstellung.
  2. Web-Scraping: Wenn Sie Text von Websites extrahieren, die Zeichen aus verschiedenen Sprachen enthalten können, sorgt UTF-8 für eine korrekte Interpretation.
  3. Skript-Ausgaben: Wenn Ihre Skripte Ausgaben mit nicht-englischen Zeichen generieren, sorgt die Verwendung von UTF-8 dafür, dass sie korrekt angezeigt werden.
  4. Interaktive PowerShell-Sitzungen: Für interaktive Sitzungen, in denen Sie Texte mit speziellen Zeichen eingeben oder ausgeben müssen, ist die UTF-8-Codierung von unschätzbarem Wert.

Fazit

Die UTF-8-Codierung (CHCP 65001) in PowerShell ist ein leistungsstarkes Werkzeug zum Umgang mit mehrsprachigen und speziellen Zeichen in der Konsole. Sie ermöglicht eine genaue Darstellung und Verarbeitung von Text aus verschiedenen Sprachen und Schriftsystemen. Zu verstehen, wann und wie man die UTF-8-Codierung einsetzt, sorgt für ein nahtloses Erlebnis beim Arbeiten mit verschiedenen Zeichensätzen.

Denken Sie daran, die Kompatibilität von Programmen oder Skripten mit UTF-8 zu berücksichtigen, und setzen Sie immer auf die Standard-Code-Seite zurück, wenn dies notwendig ist. Indem Sie die Leistungsfähigkeit der UTF-8-Codierung nutzen, sind Sie in der Lage, eine breite Palette von Textdaten mit Zuversicht und Genauigkeit in PowerShell zu verarbeiten.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website