String(文字列)型からバイト型配列 (バイナリ) に変換する

Visual BasicでString(文字列)型からバイト型配列 (バイナリ) に変換するコードを紹介します。

概要

Visual Basicでは文字列はunicodeとして定義されているため、文字列をバイト型配列にコピーするためには、エンコードの指定(SJIS, JIS, EUC, UTF-8など)も必要になります。Visual Basicでは System.Text.Encodingクラスが用意されており、このクラスを用いて文字列をエンコードを指定して、バイト型配列に変換できます。
文字列(String)型からバイト型配列に変換する場合はGetBytes()メソッドを用います。

補足
逆の処理である「バイト型配列 (バイナリ) を String(文字列)型に変換する」コードはこちらの記事を参照してください。

プログラム例

UI

下図のUIを作成します。フォームにボタンとMultilineプロパティをtrueに設定した、複数行テキストボックスを配置します。
String(文字列)型からバイト型配列 (バイナリ) に変換する:画像1

コード

下記のコードを記述します。

Imports System.Text

Public Class FormStringToArray
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim textstr As String = "ぺんぎん XYZ"
        Dim bytedata() As Byte = Encoding.GetEncoding("shift_jis").GetBytes(textstr)

        For i = 0 To bytedata.Length - 1
            TextBox1.Text += Convert.ToString(bytedata(i), 16) + " - "
        Next
    End Sub
End Class

解説

textstr変数に入力文字列を代入します。今回の入力文字列は "ぺんぎん XYZ" とします。

    Dim textstr As String = "ぺんぎん XYZ"


Encodingオブジェクトを取得します。今回はGetEncodingメソッドに "shift_jis" を指定し、Shift JIS のエンコーディングオブジェクトを取得します。取得したEncodingオブジェクトのGetBytes メソッドを呼び出し、引数に与えた String型の文字列をバイト配列に変換します。

    Dim bytedata() As Byte = Encoding.GetEncoding("shift_jis").GetBytes(textstr)


バイト配列に変換した bytedata オブジェクトの要素をForループを利用して一つずつ取得し、16進数表記にした値をテキストボックスに表示します。

    For i = 0 To bytedata.Length - 1
        TextBox1.Text += Convert.ToString(bytedata(i), 16) + " - "
    Next

実行結果

上記のプロジェクトを実行します。下図のウィンドウが表示されます。
String(文字列)型からバイト型配列 (バイナリ) に変換する:画像2

[button1]をクリックします。入力文字列の "ぺんぎん XYZ" をバイト配列に変換し、それぞれのバイトを16進数表記した値がテキストボックスに表示されます。
String(文字列)型からバイト型配列 (バイナリ) に変換する:画像3

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2019-06-26
Copyright © 1995–2025 iPentec all rights reserverd.