documents:windows:powershell:powersahell-005
文書の過去の版を表示しています。
バイト配列から文字列に変換する
項目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