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
$PSDefaultParameterValues
per Usare la Codifica UTF-8 in Windows PowerShell -
Usare il Comando
chcp
per 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,65001
rappresenta 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 437
per 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.