Как кодировать коды символов Юникода в строковом литерале 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

см https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_special_characters?view=powershell-6#unicode-character-ux


возможно, это не путь PowerShell, но это то, что я делаю. Я нахожу его чище.

[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048ello") # Prints Hello