Как закодировать коды символов Юникода в строковом литерале PowerShell?

StackOverflow https://stackoverflow.com/questions/1056692

Вопрос

Как я могу закодировать символ Юникода 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

видеть 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top