-join [char[]]$arr - szybki, sprytny sposób na zamianę tablicy bajtów na łańcuch znaków
tty1 · powershell
PS> -join [char[]]$arr
#Powershell#ProzaŻycia#HackWay
Czasem potrzebujemy szybko zamienić tablicę bajtów na łańcuch znaków. Tablicę bajtów możemy otrzymać w różnych wypadkach np. w wyniku użycia metody UploadFile obiektu Net.WebClient czy statycznej metody FromBase64String klasy Convert.
PS> $arr = [Convert]::FromBase64String("SGVsbG8h")
PS> -join [char[]]$arr
Hello!
Cała magia polega na zrzutowaniu tablicy bajtów na tablicę znaków ( [char[]]), a następnie wykorzystaniu operatora -join, który, nie często występując samotnie po lewej stronie, złączy znaki w jeden napis.
Dla osób, które wolą mniej hakerski i bardziej czytelny kod, zawsze jest:
[Text.Encoding]::UTF8.GetString($arr)