ค้นหาเว็บไซต์

PowerShell แปลงสตริงเป็นไบต์อาร์เรย์


ใช้วิธี GetBytes() ของรูปแบบการเข้ารหัส UTF8 ใน PowerShell เพื่อแปลงสตริงเป็นอาร์เรย์ไบต์ วิธีการนี้แปลงสตริงเป็นไบต์และส่งกลับอาร์เรย์ไบต์

คลาส [System.Text.Encoding] จัดเตรียมวิธีการแปลงสตริงเป็นและจากการใช้รูปแบบการเข้ารหัสที่แตกต่างกัน

ในบทความนี้ เราจะกล่าวถึงวิธีการใช้เมธอด GetBytes() ใน PowerShell เพื่อแปลงสตริงเป็นอาร์เรย์ไบต์

แปลงสตริงเป็นอาร์เรย์ไบต์ใน PowerShell โดยใช้วิธี GetBytes()

ใช้วิธี GetBytes() ของรูปแบบการเข้ารหัส UTF8 ใน PowerShell เพื่อแปลงสตริงเป็นอาร์เรย์ไบต์

# Declare string variable
$str = "ShellGeek"

# Get the data type of the variable
$str.GetType()

# converting string to bytes stream
$bytesArr = [System.Text.Encoding]::UTF8.GetBytes($str)

# Print the bytes array
$bytesArr

# Get the data type of the variable
$bytesArr.GetType()

ในสคริปต์ PowerShell ข้างต้น ตัวแปร $str เป็นประเภทสตริงที่มีค่า "ShellGeek" เมื่อใช้วิธี GetBytes() จะแปลงสตริงเป็นไบต์และกำหนดผลลัพธ์ให้กับตัวแปร $bytesArr ที่มีอาร์เรย์ไบต์

วิธีการ GetType() ใน PowerShell รับประเภทข้อมูลสำหรับตัวแปร

ผลลัพธ์ของสคริปต์ข้างต้นใน PowerShell แปลงสตริงเป็นไบต์โดยใช้คลาส GetBytes() วิธีการ [System.Text.Encoding] คือ:

เคล็ดลับเด็ด: วิธีแปลงสตริงเป็นจำนวนเต็มใน PowerShell!

PowerShell แปลงสตริงเป็นไบต์สตรีมโดยใช้การเข้ารหัส Unicode

ใช้ประเภทการเข้ารหัส Unicode ที่คลาส System.Text.Encoding รองรับเพื่อแปลงสตริงเป็นสตรีมไบต์ใน PowerShell

$str = "ShellGeek" 
$bytesArr = [System.Text.Encoding]::Unicode.GetBytes($str) 
$bytesArr        

ในสคริปต์ PowerShell ข้างต้น $str มีค่าสตริง “ShellGeek” เมธอด GetBytes() ของคลาส System.Text.Encoding ใช้ประเภทการเข้ารหัส Unicode เพื่อแปลงสตริงเป็นสตรีมไบต์

ผลลัพธ์ของสคริปต์ PowerShell ข้างต้นคือ:

PS C:\> $str = "ShellGeek"                                                                                              

PS C:\> $str.GetType()                                                                                                  
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

PS C:\> $bytesArr = [System.Text.Encoding]::Unicode.GetBytes($str) 

PS C:\> $bytesArr                                                                                                      
 83
0
104
0
101
0
108
0
108
0
71
0
101
0
101
0
107
0

PS C:\>              

อาร์เรย์ไบต์คือชุดของไบต์ โดยแต่ละไบต์แทนข้อมูล 8 บิต

ใน PowerShell เพื่อแปลงสตริงเป็นบิต ให้แปลงสตริงเป็นอาร์เรย์ไบต์โดยใช้เมธอด GetBytes() ของคลาส System.Text.Encoding จากนั้นวนซ้ำแต่ละไบต์ใน ไบต์อาร์เรย์ที่จะแปลงเป็นสตริงไบนารี่โดยใช้เมธอด ToString() ของคลาส [System.Convert] ที่มีฐานเป็น 2

$str = "ShellGeek" 
# Convert a string to byte array
$bytesArr = [System.Text.Encoding]::Unicode.GetBytes($str)

$bits = ""  
foreach($byte in $bytesArr){
   $bits += [System.Convert]::ToString($byte,2).PadLeft(8,'0')
}

Write-Host $bits 

ผลลัพธ์ของสคริปต์ PowerShell ข้างต้นจะแปลงสตริงเป็นบิตดังนี้:

PS C:\> $str = "ShellGeek"                                                                                              
PS C:\> $bytesArr = [System.Text.Encoding]::UTF8.GetBytes($str)  
PS C:\> $bits = ""                                                                                                      
PS C:\> foreach($byte in $bytes){$bits += [System.Convert]::ToString($byte,2).PadLeft(8,'0')}                           

PS C:\> $bits                                                                                                           0100100001100101011011000110110001101111001000000101011101101111011100100110110001100100

PS C:\>      

บทสรุป

ฉันหวังว่าบทความข้างต้นเกี่ยวกับวิธีแปลงสตริงเป็นอาร์เรย์ไบต์ใน PowerShell โดยใช้วิธี GetBytes() ของรูปแบบการเข้ารหัส UTF8 จะเป็นประโยชน์สำหรับคุณ

สตริง PowerShell เป็นลำดับของอักขระในขณะที่ไบต์เป็นลำดับของข้อมูลไบนารี คลาส System.Text.Encoding จัดเตรียมวิธีการแปลงสตริงเป็นไบต์ และแปลงอาร์เรย์ไบต์เป็นสตริงโดยใช้เมธอด GetString()

คุณสามารถค้นหาหัวข้อเพิ่มเติมเกี่ยวกับคำสั่ง PowerShell Active Directory และพื้นฐานของ PowerShell ได้ในหน้าแรกของ ShellGeek

บทความที่เกี่ยวข้อง