Codieren Sie ohne BOM in PowerShell

MD Aminul Islam 20 Juni 2023
  1. das UTF-8 Kodierungssystem
  2. Kodiere einen String ohne BOM
  3. Codieren Sie eine Textdatei ohne BOM
Codieren Sie ohne BOM in PowerShell

In diesem Artikel erfahren Sie, wie Sie die UTF-8-Kodierung verwenden, wenn Sie Dateien erstellen oder mit ihnen arbeiten, ohne die Byte-Order-Marke (BOM) zu verwenden. In diesem Artikel werden wir verschiedene Beispielcodes verwenden, um zwei Methoden zu lernen, die mit String-Variablen und Dateien arbeiten. Beginnen wir jedoch zunächst damit, das Codierungssystem UTF-8 zu verstehen.

das UTF-8 Kodierungssystem

Die Kodierung mit UTF-8 ist die Standardeinstellung in der Windows-Umgebung. Außerdem ist es ein Standard in Windows PowerShell. Das UTF-8, auch bekannt als UCS Transformation Format 8, ist die am weitesten verbreitete und beliebteste Zeichenkodierung für jedes Computersystem.

In diesem Kodierungssystem wird jedes Zeichen durch 1 bis 4 Bytes dargestellt, und es ist abwärtskompatibel mit ASCII und kann jedes Standardzeichen darstellen. Aber wenn wir beim Erstellen einer Datei nicht UTF-8 verwenden möchten, können wir das auch tun.

Jetzt werden wir sehen, wie man die UTF-8-Kodierung verwendet, wenn man Dateien erstellt oder mit ihnen arbeitet, ohne BOM zu verwenden.

Kodiere einen String ohne BOM

Unten sehen Sie ein Beispiel, in dem wir eine Zeichenfolge ohne Verwendung der BOM-Codierung codieren. Sehen Sie sich zum Beispiel den Codezaun unten an.

Beispielcode:

$MyRawString = "It is a text."
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines("G:\PowerShell\out.txt", $MyRawString, $Utf8NoBomEncoding)

Im oben geteilten Beispiel deklarieren wir zunächst einen String mit einem einfachen Text. Danach haben wir das BOM beim Arbeiten mit der UTF-8-Kodierung durch die Zeile $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False deaktiviert.

Zuletzt schreiben wir alle Zeilen neu und geben sie als Textdateien aus. Nach dem Ausführen des oben freigegebenen Skripts erhalten wir den folgenden Inhalt in der Ausgabetextdatei.

Ausgang:

It is a text.

Codieren Sie eine Textdatei ohne BOM

Angenommen, wir haben die Textdatei (sample.txt) mit folgendem Inhalt:

It is the first line.
It is the second line.
It is the third line.
It is the fourth line.
It is the fifth line.

Unten sehen Sie ein Beispiel, in dem wir eine Textdatei ohne die Verwendung der BOM-Codierung codieren. Der Code für unser Beispiel sieht wie folgt aus.

$MyRawString = Get-Content -Raw "G:\PowerShell\sample.txt"
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines("G:\PowerShell\out.txt", $MyRawString, $Utf8NoBomEncoding)

Zuerst haben wir eine Variable deklariert, die die Daten aus der Textdatei enthält. Um die Daten aus der Textdatei zu extrahieren, haben wir dann das eingebaute Schlüsselwort von PowerShell verwendet, nämlich Get-Content.

Danach haben wir das BOM beim Arbeiten mit der UTF-8-Kodierung durch die Zeile $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False deaktiviert.

Zuletzt schreiben wir alle Zeilen neu und geben sie als Textdateien aus. Nach dem Ausführen des oben freigegebenen Skripts erhalten wir den folgenden Inhalt in der Ausgabetextdatei (out.txt).

Ausgang:

It is the first line.
It is the second line.
It is the third line.
It is the fourth line.
It is the fifth line.

Bitte beachten Sie, dass die hier freigegebenen Beispielcodes nur in der Windows PowerShell-Umgebung ausführbar sind.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Verwandter Artikel - PowerShell Encoding