Jak mogę kodować znak Unicode U + 0048 (H), powiedzmy, w ciągu PowerShell?Jak kodować kody znaków Unicode w dosłownym słowie programu PowerShell?
W języku C# po prostu zrobiłbym to: "\u0048"
, ale to nie wydaje się działać w PowerShell.
Jak mogę kodować znak Unicode U + 0048 (H), powiedzmy, w ciągu PowerShell?Jak kodować kody znaków Unicode w dosłownym słowie programu PowerShell?
W języku C# po prostu zrobiłbym to: "\u0048"
, ale to nie wydaje się działać w PowerShell.
Wymienić '\ u' z '0x' i oddać go do System.Char:
PS > [char]0x0048
H
Można także użyć "$()" składni, aby umieścić znak Unicode na ciąg znaków:
PS > "Acme$([char]0x2122) Company"
AcmeT Company
Gdzie T jest reprezentacją znaku PowerShell dla niezarejestrowanych znaków towarowych.
Dzięki. To działa. Mogę go użyć w następujący sposób: [char] 0x0048 + "ello", co daje "Hello". –
Możesz nawet napisać małą funkcję: funkcja C ($ n) {[char] [int] "0x $ n"}. Które można użyć w ciągu znaków w następujący sposób: "$ (C 48) ello World." Nie idealne, ale prawdopodobnie trochę bliżej do ucieczki. – Joey
Może to nie jest sposób PowerShell, ale to właśnie robię. Uważam, że jest czystszy.
[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048ello") # Prints Hello
Jakie jest ustawione kodowanie wyjściowe? ($ OutputEncoding) –
To my-ascii. Ale U + 0048 powinno być w tym kodowalne. Próbuję kodować znak ucieczki (U + 001B). –