Wie kodieren ich Unicode-Zeichencodes in einem Powershell Stringliteral?
-
20-08-2019 - |
Frage
Wie kann ich das Unicode-Zeichen U + 0048 (H) kodieren, sagt sie, in einem Powershell-String?
In C # würde ich nur dies tun:. "\u0048"
, aber das scheint nicht in Powershell zu arbeiten
Lösung
Ersetzen '\ u' mit '0x' und wirft es auf System.Char:
PS > [char]0x0048
H
Sie können auch die Verwendung „$ ()“ Syntax ein Unicode-Zeichen in eine Zeichenfolge einzubetten
PS > "Acme$([char]0x2122) Company"
AcmeT Company
Dabei gilt T Powershell Darstellung des Zeichens für nicht eingetragene Marken.
Andere Tipps
Nach der Dokumentation, Powershell-Core 6.0 fügt Unterstützung mit dieser Escape-Sequenz:
PS> "`u{0048}"
H
finden Sie unter https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_special_characters?view=powershell-6#unicode-character-ux
Vielleicht ist dies nicht die Powershell Art und Weise, aber das ist, was ich tue. Ich finde es sauberer sein.
[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048ello") # Prints Hello