在Powershell中获取字符串的二进制值
我希望能够得到一个用户段落或任何他们输入的字符串,并将其转换为二进制。在Powershell中获取字符串的二进制值,powershell,powershell-2.0,Powershell,Powershell 2.0,我希望能够得到一个用户段落或任何他们输入的字符串,并将其转换为二进制。[conver]::toString($getAscii,2)仅适用于整数 我建议使用与此用户类似的编码库: $getInput = Read-Host "ASCII or Binary? `n" $getInput = $getInput.toLower() if($getInput -eq "ascii"){ "" #Write-Host "Type In Your ASCII" -backgroun
[conver]::toString($getAscii,2)
仅适用于整数 我建议使用与此用户类似的编码库:
$getInput = Read-Host "ASCII or Binary? `n"
$getInput = $getInput.toLower()
if($getInput -eq "ascii"){
""
#Write-Host "Type In Your ASCII" -backgroundcolor "black"
$getAscii = Read-Host "Type In Your ASCII`n"
""
""
$readAscii = @($getAscii)
[byte[]]$outBytes = $readAscii
}
elseif($getInput -eq "binary"){
}
else{
Write-Host "Wrong Input... [ASCII] or [BINARY]" -backgroundcolor "red" -foregroundcolor "white"
}
资料来源:
*注:我相信这种方法的原始海报旨在将$foo分配给第二次转换。我相信这两种方法都可以,因为返回值将转储到下面的变量。试试这个
$stringToConvert = "Hello World"
$test = [System.Text.Encoding]::UTF8.GetBytes($stringToConvert) | %{ [System.Convert]::ToString($_,2).PadLeft(8,'0') }
$test
[system.Text.Encoding]::Default.GetBytes($String)
这会将字符串转换为字节数组。您可以将默认值更改为其他编码
|%{[System.Convert]::ToString($\u0,2).padlefit(8,'0')}
这会将字节数组中的每个字节转换为二进制表示形式。
ToString([object],[Enum]),在这种情况下,字节将有一个类似于65的数值,如果转换为字符串,则2将表示将65转换为基数2。您还可以使用8(八进制)、10(与无相同,即10进制)和16(十六进制)。然后用字符0填充左边的字符,直到其长度为8个字符
$string = "ABCDEF"
[system.Text.Encoding]::Default.GetBytes($String) | %{[System.Convert]::ToString($_,2).PadLeft(8,'0') }
一个字符或整个字符串?最好是字符串,所以
hello world
应该是011010011001011001101100 011011011111 00100000011101111 011011011110010 011011001100 011001001001010
我看到了这篇帖子,我只是不确定它是否适用。是的,这是可行的,我只是测试了它:例如,Hello返回您正在查找的内容-只需设置一个变量来替换当前字符串“Hello”(或一个参数)您应该开始使用一种简单的转换方法。我已经修改了解决方案,以完全执行您想要的操作:请在powershell中测试它,您将看到它执行您想要的操作。默认值
可以更改为任何字符编码?是的,可以。只需删除并替换
'hello world' -split '' | % {
if ($_ -ne '') {
#[int][char]$_
[System.Convert]::ToString(([int][char]$_),2)
}
}