Как кодировать коды символов Unicode в строковом литерале PowerShell? - PullRequest
42 голосов
/ 29 июня 2009

Как я могу кодировать символ Unicode U + 0048 (H), скажем, в строке PowerShell?

В C # я бы просто сделал это: "\u0048", но в PowerShell это не работает.

Ответы [ 3 ]

54 голосов
/ 29 июня 2009

Замените '\ u' на '0x' и приведите его к System.Char:

PS > [char]0x0048
H

Вы также можете использовать синтаксис "$ ()" для встраивания символа Unicode в строку:

PS > "Acme$([char]0x2122) Company"
AcmeT Company

Где T - представление символа PowerShell для незарегистрированных товарных знаков.

13 голосов
/ 20 марта 2018

Согласно документации, PowerShell Core 6.0 добавляет поддержку с помощью следующей управляющей последовательности:

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

7 голосов
/ 08 сентября 2015

Возможно, это не так, как в PowerShell, но это то, что я делаю. Я считаю, что это чище.

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