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
