Codifica UTF-8 (CHCP 65001) in PowerShell
- Unicode in PowerShell
- Cambiare il Locale di Sistema per Usare la Codifica UTF-8 in Windows PowerShell
- 
          
            Impostare la Codifica nella Variabile $PSDefaultParameterValuesper Usare la Codifica UTF-8 in Windows PowerShell
- 
          
            Usare il Comando chcpper Passare alla Codifica UTF-8 in Windows PowerShell
- Vantaggi di Usare la Codifica UTF-8 in PowerShell
- Conclusione
 
La codifica UTF-8, rappresentata da CHCP 65001 in PowerShell, è uno strumento fondamentale per lavorare con caratteri multilingue e speciali nella console. Questo articolo fornirà una guida completa su come utilizzare la codifica UTF-8 in PowerShell, dalla comprensione della sua importanza all’implementazione pratica.
Unicode in PowerShell
Unicode è uno standard di codifica dei caratteri mondiale. Definisce come i caratteri nei file di testo, nelle pagine web e in altri documenti sono rappresentati.
Il sistema informatico usa Unicode per manipolare caratteri e stringhe. La codifica predefinita in PowerShell è Windows-1252.
Unicode è stato sviluppato per supportare caratteri di tutte le lingue del mondo. PowerShell supporta per impostazione predefinita una codifica di caratteri Unicode.
UTF-8 e UTF-16 sono le codifiche Unicode più comuni. PowerShell utilizza sempre il BOM in tutte le codifiche Unicode tranne UTF7.
Il BOM (byte-order-mark) è una firma Unicode inclusa nei primi byte di un file o flusso di testo che indica la codifica Unicode.
Comprendere la Codifica UTF-8
UTF-8 è uno standard di codifica dei caratteri che utilizza una codifica a larghezza variabile per rappresentare il testo. È in grado di codificare praticamente tutti i caratteri in Unicode, rendendolo la codifica di caratteri più utilizzata su Internet.
Nel contesto di PowerShell, la codifica UTF-8 garantisce che i caratteri di lingue diverse, simboli e caratteri speciali siano visualizzati e processati correttamente nella finestra della console.
Cambiare il Locale di Sistema per Usare la Codifica UTF-8 in Windows PowerShell
C’è un’opzione per cambiare il locale di sistema (lingua corrente per programmi non Unicode) in Windows. Ma questa funzione è ancora in fase beta.
Vai su Impostazioni Regione dal Pannello di Controllo o apri intl.cpl dal programma Esegui (Windows+R).

Apri la scheda Amministrativa e fai clic su Cambia locale di sistema. Quindi, seleziona l’opzione Beta, come mostrato nell’immagine qui sotto.

Dopo, premi OK e riavvia il computer per applicare le impostazioni.
Dopo aver riavviato il computer, puoi controllare la variabile $OutputEncoding per visualizzare la codifica corrente.
$OutputEncoding
Output:
Come puoi vedere, la codifica attuale è 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
Ora puoi visualizzare i caratteri di altre lingue in PowerShell.
Get-Content test.txt
Output:
만나서 반가워요
Impostare la Codifica nella Variabile $PSDefaultParameterValues per Usare la Codifica UTF-8 in Windows PowerShell
$PSDefaultParameterValues è una variabile automatica integrata in PowerShell che consente di impostare valori predefiniti per i parametri dei cmdlet. Questo significa che puoi specificare valori predefiniti per i parametri dei cmdlet senza doverli fornire esplicitamente ogni volta che usi il cmdlet.
Puoi eseguire il seguente comando per attivare la codifica UTF-8 in PowerShell.
$PSDefaultParameterValues = @{'*:Encoding' = 'utf8' }
È valido solo per la console PowerShell corrente. Viene ripristinato al valore predefinito dopo aver chiuso la finestra di PowerShell.
Get-Content test.txt
Output:
만나서 반가워요
Diversi cmdlet in PowerShell hanno il parametro -Encoding per specificare la codifica per diversi set di caratteri. Alcuni di essi sono Add-Content, Set-Content, Get-Content, Export-Csv, Out-File, ecc.
Il parametro -Encoding supporta questi valori: ascii, bigendianunicode, oem, unicode, utf7, utf8, utf8BOM, utf8NoBOM, utf32.
Usare il Comando chcp per Passare alla Codifica UTF-8 in Windows PowerShell
Per passare alla codifica UTF-8 in PowerShell, usa il comando chcp seguito da 65001:
chcp 65001
Questo comando indica a PowerShell di utilizzare la codifica UTF-8 per l’input e l’output dei caratteri.
Ecco cosa fa questo comando in dettaglio:
- 
chcp: Questo è un comando nel prompt dei comandi di Windows e in PowerShell. Sta per"Cambia Pagina di Codifica". La pagina di codifica determina come i caratteri vengono codificati e visualizzati nella finestra della console.
- 
65001: In questo contesto,65001rappresenta la pagina di codifica per la codifica UTF-8. UTF-8 è una codifica dei caratteri a larghezza variabile in grado di codificare tutti i possibili caratteri, o punti di codice, in Unicode.- UTF-8: È una codifica dei caratteri ampiamente utilizzata che può rappresentare quasi tutti i caratteri di tutte le lingue umane. È particolarmente prevalente su Internet.
 
- 
Cambiare in UTF-8 ( 65001): Quando eseguichcp 65001, stai dicendo a PowerShell di utilizzare la codifica UTF-8 per l’input e l’output dei caratteri nella console. Questo può essere utile quando si lavora con dati di testo che includono caratteri di lingue diverse e simboli.
Ripristinare la Pagina di Codifica Predefinita
Ricorda che cambiare la pagina di codifica potrebbe influenzare il comportamento di alcune applicazioni console, quindi in generale è buona prassi ripristinarla alla pagina di codifica predefinita (solitamente 437 per l’inglese) quando hai finito di usare UTF-8.
Per ripristinare la pagina di codifica al valore predefinito, puoi usare il comando:
chcp 437
Questo ripristinerà la pagina di codifica predefinita per il tuo sistema, che è adatta per il testo in inglese.
Vantaggi di Usare la Codifica UTF-8 in PowerShell
- Supporto Multilingue: UTF-8 consente a PowerShell di gestire il testo in più lingue, garantendo la corretta visualizzazione e elaborazione dei caratteri di diverse scritture.
- Caratteri Speciali: È cruciale quando si trattano caratteri speciali come emoji o simboli matematici che non sono rappresentati nelle codifiche standard.
- Gestione dei File: Quando si lavora con file di testo che includono caratteri di varie lingue, l’uso di UTF-8 garantisce operazioni sui file corrette.
- Elaborazione dei Dati: Se stai lavorando con dati che contengono caratteri non inglesi, impostare la pagina di codifica su UTF-8 garantisce una gestione e un’elaborazione corrette.
Considerazioni Potenziali
- Applicazioni Console: Cambiare la pagina di codifica potrebbe influenzare il comportamento di alcune applicazioni console. Ripristina sempre la pagina di codifica predefinita (chcp 437per l’inglese) quando hai finito di usare UTF-8.
- Compatibilità: Assicurati che i programmi o gli script che stai eseguendo in PowerShell possano gestire la codifica UTF-8. Le applicazioni più vecchie potrebbero non supportarla completamente.
Casi Pratici di Utilizzo
- Lettura di File: Quando leggi file di testo con caratteri non inglesi, l’uso di UTF-8 garantisce una rappresentazione accurata.
- Web Scraping: Se stai estraendo testo da siti web che potrebbero contenere caratteri di varie lingue, UTF-8 assicura una corretta interpretazione.
- Output di Script: Se i tuoi script generano output con caratteri non inglesi, utilizzare UTF-8 garantisce che siano visualizzati correttamente.
- Sessioni Interattive di PowerShell: Per sessioni interattive in cui devi inserire o visualizzare testo con caratteri speciali, la codifica UTF-8 è inestimabile.
Conclusione
La codifica UTF-8 (CHCP 65001) in PowerShell è uno strumento potente per gestire caratteri multilingue e speciali nella console. Consente una rappresentazione e un’elaborazione accurate del testo di varie lingue e scritture. Comprendere quando e come utilizzare la codifica UTF-8 garantisce un’esperienza fluida quando si lavora con set di caratteri diversi.
Ricorda di considerare la compatibilità dei programmi o degli script con UTF-8 e di ripristinare sempre la pagina di codifica predefinita quando necessario. Sfruttando il potere della codifica UTF-8, sarai equipaggiato per gestire un’ampia gamma di dati testuali con fiducia e precisione in PowerShell.
