Codifica UTF-8 (CHCP 65001) in PowerShell

  1. Unicode in PowerShell
  2. Cambiare il Locale di Sistema per Usare la Codifica UTF-8 in Windows PowerShell
  3. Impostare la Codifica nella Variabile $PSDefaultParameterValues per Usare la Codifica UTF-8 in Windows PowerShell
  4. Usare il Comando chcp per Passare alla Codifica UTF-8 in Windows PowerShell
  5. Vantaggi di Usare la Codifica UTF-8 in PowerShell
  6. Conclusione
Codifica UTF-8 (CHCP 65001) in PowerShell

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).

cambia la lingua del sistema per utilizzare la codifica UTF-8 in PowerShell

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

usa unicode UTF-8 per il supporto linguistico mondiale

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 esegui chcp 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

  1. 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.
  2. Caratteri Speciali: È cruciale quando si trattano caratteri speciali come emoji o simboli matematici che non sono rappresentati nelle codifiche standard.
  3. 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.
  4. 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

  1. 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.
  2. 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

  1. Lettura di File: Quando leggi file di testo con caratteri non inglesi, l’uso di UTF-8 garantisce una rappresentazione accurata.
  2. Web Scraping: Se stai estraendo testo da siti web che potrebbero contenere caratteri di varie lingue, UTF-8 assicura una corretta interpretazione.
  3. Output di Script: Se i tuoi script generano output con caratteri non inglesi, utilizzare UTF-8 garantisce che siano visualizzati correttamente.
  4. 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.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
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