ファイル調査:バイト配列から文字列に変換

2025-09-10
自分用メモ

ファイル調査:Format-Hexの使い方メモの続き。

項目NAMEを文字列として表示したい場合。

項目NAME値の調査をする

項目NAMEは漢字の項目で、H社ホストでは漢字コードにSJISを使っている事も分かっている。項目NAMEをバイト列から文字列に直して表示してみればいい。

今回はPowerShellバージョンは関係なく使えそうな手段を示す。

項目NAMEの変換

ファイル内容をバイト配列として保存し、配列の範囲を System.Text.Encodingオブジェクトに与えて文字列に戻してあげる。

項目NAMEは

となる。

PS E:\WK> $bindata = Get-Content -Path SAMPLEBIN -Raw -Encoding Byte  ← ファイルをバイト型配列としてメモリに確保する。
PS E:\WK> $enc = [System.Text.Encoding]::GetEncoding(932) ← CP932 ※MS932, Windows-31j
PS E:\WK> $enc.GetString($bindata[4..11])  ← 1レコード目の項目NAME
柴犬
PS E:\WK> $enc.GetString($bindata[18..25])  ← 2レコード目の項目NAME
柴犬  
PS E:\WK> $enc.GetString($bindata[32..39])  ← 3レコード目の項目NAME
土佐犬 
PS E:\WK>

1レコード目は「柴犬  」、2レコード目も「柴犬  」、3レコード目は「土佐犬 」となった。