Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】文字列をバイト列で表示する

以下の9つの漢字(文字)からなる文字列を、バイト列で表示する。

  漢字  JISコード Shift_JIS UTF-8    Unicode
1 和    0x4f42    0x9861    0xe5928c U+548C 
2 多    0x423f    0x91bd    0xe5a49a U+591A 
3 田    0x4544    0x9363    0xe794b0 U+7530 
4 美    0x487e    0x94fc    0xe7be8e U+7F8E 
5 咲    0x3a69    0x8de7    0xe592b2 U+54B2 
6 か    0x242b    0x82a9    0xe3818b U+304B 
7 わ    0x246f    0x82ed    0xe3828f U+308F 
8 い    0x2424    0x82a2    0xe38184 U+3044 
9 い    0x2424    0x82a2    0xe38184 U+3044 

それぞれShift_JISUTF-8UTF-16(リトルエンディアン)のバイト列を表示した例。

PS > $s = "和多田美咲かわいい"
PS > $b = [System.Text.Encoding]::Default.GetBytes($s)
PS > $b | % {Write-Host -NoNewline ("{0:X2} " -f $_)}
98 61 91 BD 93 63 94 FC 8D E7 82 A9 82 ED 82 A2 82 A2
PS > $b = [System.Text.Encoding]::UTF8.GetBytes($s)
PS > $b | % {Write-Host -NoNewline ("{0:X2} " -f $_)}
E5 92 8C E5 A4 9A E7 94 B0 E7 BE 8E E5 92 B2 E3 81 8B E3 82 8F E3 81 84 E3 81 84
PS > $b = [System.Text.Encoding]::Unicode.GetBytes($s)
PS > $b | % {Write-Host -NoNewline ("{0:X2} " -f $_)}
8C 54 1A 59 30 75 8E 7F B2 54 4B 30 8F 30 44 30 44 30

16進数のバイト列で表示しているのであって、上記の例では変数$bがすでにバイト列の配列である。演算などに使用したい場合は$bをそのまま使えばよい。