Encodage UTF-8 (CHCP 65001) dans PowerShell
- Unicode dans PowerShell
- Modifier la locale du système pour utiliser l’encodage UTF-8 dans Windows PowerShell
-
Définir l’encodage dans la variable
$PSDefaultParameterValues
pour utiliser l’encodage UTF-8 dans Windows PowerShell -
Utiliser la commande
chcp
pour passer à l’encodage UTF-8 dans Windows PowerShell - Avantages de l’utilisation de l’encodage UTF-8 dans PowerShell
- Conclusion

L’encodage UTF-8, représenté par CHCP 65001
dans PowerShell, est un outil clé pour travailler avec des caractères multilingues et spéciaux dans la console. Cet article fournira un guide complet sur la manière d’utiliser l’encodage UTF-8 dans PowerShell, de la compréhension de son importance à sa mise en œuvre pratique.
Unicode dans PowerShell
Unicode est une norme mondiale d’encodage des caractères. Il définit comment les caractères dans les fichiers texte, les pages web et d’autres documents sont représentés.
Le système informatique utilise Unicode pour manipuler les caractères et les chaînes. L’encodage par défaut dans PowerShell est Windows-1252.
Unicode a été développé pour prendre en charge les caractères de toutes les langues du monde. PowerShell prend en charge un encodage de caractères Unicode par défaut.
UTF-8 et UTF-16 sont les encodages Unicode les plus courants. PowerShell utilise toujours BOM
dans tous les encodages Unicode, sauf UTF7.
Le BOM
(byte-order-mark) est une signature Unicode incluse dans les premiers octets d’un fichier ou d’un flux texte qui indique l’encodage Unicode.
Comprendre l’encodage UTF-8
UTF-8 est une norme d’encodage de caractères qui utilise un encodage à largeur variable pour représenter le texte. Il est capable d’encoder pratiquement tous les caractères de l’Unicode, ce qui en fait l’encodage de caractères le plus utilisé sur Internet.
Dans le contexte de PowerShell, l’encodage UTF-8 garantit que les caractères de différentes langues, symboles et caractères spéciaux sont affichés et traités correctement dans la fenêtre de la console.
Modifier la locale du système pour utiliser l’encodage UTF-8 dans Windows PowerShell
Il existe une option pour changer la locale du système (langue actuelle pour les programmes non Unicode) dans Windows. Mais cette fonctionnalité est encore en bêta.
Accédez aux Paramètres de région
à partir du Panneau de configuration
ou ouvrez intl.cpl
à partir du programme Exécuter
(Windows+R).
Ouvrez l’onglet Administratif
et cliquez sur Modifier la locale système
. Ensuite, cochez l’option Bêta
, comme indiqué dans l’image ci-dessous.
Après cela, appuyez sur OK
et redémarrez l’ordinateur pour appliquer les paramètres.
Après avoir redémarré l’ordinateur, vous pouvez vérifier la variable $OutputEncoding
pour voir l’encodage actuel.
$OutputEncoding
Sortie :
Comme vous pouvez le constater, l’encodage actuel est 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
Maintenant, vous pouvez voir les caractères d’autres langues dans PowerShell.
Get-Content test.txt
Sortie :
만나서 반가워요
Définir l’encodage dans la variable $PSDefaultParameterValues
pour utiliser l’encodage UTF-8 dans Windows PowerShell
$PSDefaultParameterValues
est une variable automatique intégrée dans PowerShell qui vous permet de définir des valeurs par défaut pour les paramètres des cmdlets. Cela signifie que vous pouvez spécifier des valeurs par défaut pour les paramètres des cmdlets sans avoir à les fournir explicitement chaque fois que vous utilisez le cmdlet.
Vous pouvez exécuter la commande suivante pour activer l’encodage UTF-8 dans PowerShell.
$PSDefaultParameterValues = @{'*:Encoding' = 'utf8' }
Elle n’est valable que pour la console PowerShell actuelle. Elle sera réinitialisée à la valeur par défaut après que vous ayez quitté la fenêtre PowerShell.
Get-Content test.txt
Sortie :
만나서 반가워요
Plusieurs cmdlets dans PowerShell ont le paramètre -Encoding
pour spécifier l’encodage pour différents jeux de caractères. Certains d’entre eux sont Add-Content
, Set-Content
, Get-Content
, Export-Csv
, Out-File
, etc.
Le paramètre -Encoding
prend en charge ces valeurs : ascii
, bigendianunicode
, oem
, unicode
, utf7
, utf8
, utf8BOM
, utf8NoBOM
, utf32
.
Utiliser la commande chcp
pour passer à l’encodage UTF-8 dans Windows PowerShell
Pour passer à l’encodage UTF-8 dans PowerShell, utilisez la commande chcp
suivie de 65001
:
chcp 65001
Cette commande indique à PowerShell d’utiliser l’encodage UTF-8 pour l’entrée et la sortie de caractères.
Voici ce que fait cette commande en détail :
-
chcp
: Il s’agit d’une commande dans l’invite de commandes Windows et PowerShell. Elle signifie"Change Code Page"
. La page de code détermine comment les caractères sont encodés et affichés dans la fenêtre de la console. -
65001
: Dans ce contexte,65001
représente la page de code pour l’encodage UTF-8. UTF-8 est un encodage de caractères à largeur variable capable d’encoder tous les caractères possibles, ou points de code, dans Unicode.- UTF-8 : C’est un encodage de caractères largement utilisé qui peut représenter presque tous les caractères de toutes les langues humaines. Il est particulièrement répandu sur Internet.
-
Passer à UTF-8 (
65001
) : Lorsque vous exécutezchcp 65001
, vous indiquez à PowerShell d’utiliser l’encodage UTF-8 pour l’entrée et la sortie de caractères dans la console. Cela peut être utile lorsque vous travaillez avec des données textuelles qui incluent des caractères de différentes langues et des symboles.Par exemple, si vous traitez des fichiers ou des données contenant des caractères non anglais, le fait de définir la page de code sur UTF-8 garantit que ces caractères sont affichés correctement dans la console.
Réinitialisation à la page de code par défaut
N’oubliez pas que changer la page de code peut affecter le comportement de certaines applications de console, il est donc généralement judicieux de la réinitialiser à la page de code par défaut (généralement 437
pour l’anglais) lorsque vous avez fini d’utiliser UTF-8.
Pour réinitialiser la page de code à la valeur par défaut, vous pouvez utiliser la commande :
chcp 437
Cela ramènera à la page de code par défaut pour votre système, qui convient pour le texte en anglais.
Avantages de l’utilisation de l’encodage UTF-8 dans PowerShell
- Support multilingue : UTF-8 permet à PowerShell de gérer du texte dans plusieurs langues, garantissant l’affichage et le traitement corrects des caractères provenant de différents alphabets.
- Caractères spéciaux : C’est crucial lorsque l’on traite des caractères spéciaux comme des emojis ou des symboles mathématiques qui ne sont pas représentés dans les encodages standard.
- Gestion des fichiers : Lorsqu’on travaille avec des fichiers texte qui incluent des caractères de diverses langues, l’utilisation de UTF-8 garantit des opérations sur les fichiers précises.
- Traitement des données : Si vous travaillez avec des données contenant des caractères non anglais, définir la page de code sur UTF-8 garantit un traitement et une gestion corrects.
Considérations potentielles
- Applications console : Changer la page de code peut affecter le comportement de certaines applications de console. Réinitialisez toujours à la page de code par défaut (
chcp 437
pour l’anglais) lorsque vous avez terminé d’utiliser UTF-8. - Compatibilité : Assurez-vous que les programmes ou scripts que vous exécutez dans PowerShell peuvent gérer l’encodage UTF-8. Les anciennes applications peuvent ne pas le prendre en charge pleinement.
Cas d’utilisation pratiques
- Lecture de fichiers : Lors de la lecture de fichiers texte contenant des caractères non anglais, l’utilisation de UTF-8 garantit une représentation précise.
- Web scraping : Si vous extrayez du texte de sites Web qui peuvent contenir des caractères de diverses langues, UTF-8 garantit une interprétation correcte.
- Sorties de script : Si vos scripts génèrent des sorties avec des caractères non anglais, l’utilisation de UTF-8 garantit qu’elles sont affichées correctement.
- Sessions interactives PowerShell : Pour des sessions interactives où vous devez entrer ou sortir du texte avec des caractères spéciaux, l’encodage UTF-8 est inestimable.
Conclusion
L’encodage UTF-8 (CHCP 65001
) dans PowerShell est un outil puissant pour gérer les caractères multilingues et spéciaux dans la console. Il permet une représentation et un traitement précis du texte provenant de diverses langues et scripts. Comprendre quand et comment utiliser l’encodage UTF-8 garantit une expérience fluide lors du travail avec des ensembles de caractères divers.
N’oubliez pas de considérer la compatibilité des programmes ou des scripts avec UTF-8 et de toujours revenir à la page de code par défaut lorsque cela est nécessaire. En tirant parti de la puissance de l’encodage UTF-8, vous serez équipé pour gérer une large gamme de données textuelles avec confiance et précision dans PowerShell.