努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


documents:windows:powershell:powersahell-005

文書の過去の版を表示しています。


バイト配列から文字列に変換する

2025-09-10
自分用メモ

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

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

項目NAME値の調査をする

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

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

項目NAMEの変換

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

項目NAMEは

  • 1レコード目:配列要素 0番~13番で、 4~11番
  • 2レコード目:配列要素 14番~27番で、18~25番
  • 3レコード目:配列要素 28番~41番で、32~39番

となる。

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レコード目は「土佐犬 」となった。

documents/windows/powershell/powersahell-005.1757513726.txt.gz · 最終更新: by k896951

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki