Comment encoder des codes de caractères Unicode dans un littéral de chaîne PowerShell?
-
20-08-2019 - |
Question
Comment encoder le caractère Unicode U + 0048 (H), par exemple, dans une chaîne PowerShell?
En C #, je voudrais simplement faire ceci: "\u0048"
mais cela ne semble pas fonctionner dans PowerShell.
La solution
Remplacez '\ u' par '0x' et convertissez-le en System.Char:
PS > [char]0x0048
H
Vous pouvez également utiliser le " $ () " syntaxe pour incorporer un caractère Unicode dans une chaîne:
PS > "Acme$([char]0x2122) Company"
AcmeT Company
Où T est la représentation du caractère par PowerShell des marques non enregistrées.
Autres conseils
Selon la documentation, PowerShell Core 6.0 ajoute une prise en charge avec cette séquence d'échappement:
PS> "`u{0048}"
H
Peut-être que ce n’est pas la méthode PowerShell, mais c’est ce que je fais. Je trouve que c'est plus propre.
[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048ello") # Prints Hello
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow