Tramite l'istruzione Set-Content di PowerShell è possibile scrivere un testo in un file

PowerShell

set-content ascii.txt "aa"
in questo caso scrivo un file di nome ascii.txt dove all'interno c'è il testo aa scritto con la codifica ASCII, il default.
La lunghezza del file è di 4 byte, non 2, in quanto viene inserito un ritorno a capo (CR + LF) che occupa 2 byte.
Il contenuto in byte è il seguente: 61 61 0D 0A

Se volessi scrivere un testo con la codifica Unicode

PowerShell

set-content unicode.txt "aa" -Encoding unicode
in questo caso il file avrà una lunghezza di 10 byte., ovvero 2 byte iniziali fissi FF FE più 2 byte per ogni carattere.
Il contenuto in byte è: FF FE 61 00 61 00 0D 00 0A 00
I due byte iniziali sono detti byte order mark (BOM) e servono per identificate il tipo di codifica del file di testo, in questo caso unicode. Il BOM non è obbligatorio ma se c'è deve essere all'inizio.

Mentre se lo volessi in UTF-8

PowerShell

set-content unicode.txt "aa" -Encoding utf8
il file avrà lunghezza 7 byte. In UTF-8 la lunghezza dei byte che compongono il singolo carattere è variabile, i tre byte iniziali (EF BB BF) sono il BOM.
Il contenuto in byte è: EF BB BF 61 61 0D 0A

Per approfondimenti sulla codifica dei caratteri vedi anche http://en.wikipedia.org/wiki/Character_encoding e http://en.wikipedia.org/wiki/Byte_order_mark
Tags:
PowerShell199 Script85
Potrebbe interessarti anche: