web-dev-qa-db-ja.com

PowerShell文字列リテラルでUnicode文字コードをエンコードするにはどうすればよいですか?

PowerShell文字列でUnicode文字U + 0048(H)をエンコードするにはどうすればよいですか?

C#では、これを行うだけです:"\u0048"ですが、PowerShellでは機能しないようです。

43
dan-gph

'\ u'を '0x'に置き換えて、System.Charにキャストします。

PS > [char]0x0048
H

"$()"構文を使用して、Unicode文字を文字列に埋め込むこともできます。

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

TはPowerShellによる非登録商標の文字の表現です。

56
Shay Levy

ドキュメントによると、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

14
mclayton

これはPowerShellの方法ではないかもしれませんが、これは私がやっていることです。私はそれがよりきれいであると思います。

[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048Ello") # Prints Hello
8
Kevin Buchan