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