Как закодировать коды символов Юникода в строковом литерале PowerShell?
-
20-08-2019 - |
Вопрос
Как я могу закодировать символ Юникода U+0048 (H), скажем, в строке PowerShell?
В С# я бы просто сделал это: "\u0048"
, но, похоже, это не работает в PowerShell.
Решение
Замените '\u' на '0x' и приведите его к System.Char:
PS > [char]0x0048
H
Вы также можете использовать синтаксис «$()» для встраивания символа Юникода в строку:
PS > "Acme$([char]0x2122) Company"
AcmeT Company
Где T — представление PowerShell символа незарегистрированных товарных знаков.
Другие советы
Согласно документации, PowerShell Core 6.0 добавляет поддержку этой escape-последовательности:
PS> "`u{0048}"
H
Возможно, это не тот путь PowerShell, но я так делаю.Я считаю, что это чище.
[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048ello") # Prints Hello
Не связан с StackOverflow