たとえば、PowerShell文字列でUnicode文字U + 0048(H)をエンコードするにはどうすればよいですか?
C#では、これを実行"\u0048"
しますが、PowerShellでは機能しないようです。
たとえば、PowerShell文字列でUnicode文字U + 0048(H)をエンコードするにはどうすればよいですか?
C#では、これを実行"\u0048"
しますが、PowerShellでは機能しないようです。
'\u'を'0x'に置き換え、System.Charにキャストします。
PS > [char]0x0048
H
「$()」構文を使用して、Unicode文字を文字列に埋め込むこともできます。
PS > "Acme$([char]0x2122) Company"
AcmeT Company
ここで、Tは、PowerShellによる未登録商標の文字の表現です。
これは PowerShell のやり方ではないかもしれませんが、これが私がしていることです。よりきれいになったと思います。
[regex]::Unescape("\u0048") # Prints H
[regex]::Unescape("\u0048ello") # Prints Hello
BMP 以外の文字でも機能させるには、 Char.ConvertFromUtf32()を使用する必要があります。
'this is my favourite park ' + [char]::ConvertFromUtf32(0x1F3DE) +
'. It is pretty sweet ' + [char]::ConvertFromUtf32(0x1F60A)