Byte はキャラクタセットとしての内部コードが必要な場合に使用します ある値を(特定のキャラクタセットで) Char か 文字列で比較したい場合は Byte 配列の中に一つ数値をセットして、Encoding.GetChars か Encoding.GetString で変換して使用します ------------------------------------------------------ Dim ByteCr As Byte() = New Byte() { 13 } Dim ByteLf As Byte() = New Byte() { 10 } ------------------------------------------------------
Imports System.Text Module MyModule ' ******************************************************** ' 相互変換 ' ******************************************************** Sub Main() Dim base As String = "アイ" ' ************************************************************** ' 文字列の "アイ" を Byte 配列に変換 : String => Byte() ' ※ Byte 配列変換時は、キャラクタセットによって実体が変わります ' ************************************************************** Dim a_byte As Byte() = Encoding.GetEncoding("Shift_JIS").GetBytes(base) ' SHIFT_JIS としてバイト変換しているので、B1 B2 となります Console.WriteLine( a_byte.Length ) Console.WriteLine( a_byte(0).ToString("X") ) Console.WriteLine( a_byte(1).ToString("X") ) Console.WriteLine( "----------" ) ' 元に戻す Dim work As String = Encoding.GetEncoding("Shift_JIS").GetString( a_byte ) Console.WriteLine( work ) Console.WriteLine( "----------" ) ' ************************************************************** ' バイト配列(Shift_JIS) "アイ" を Char 配列(Unicode)に変換 : Byte() => Char() ' ※ Byte 配列内のキャラクタセットに合わせて変換する必要があります ' ************************************************************** Dim a_char As Char() = Encoding.GetEncoding("Shift_JIS").GetChars( a_byte ) Console.WriteLine( a_char ) Console.WriteLine( a_char.Length ) Dim b As Byte() = Encoding.Unicode.GetBytes(a_char) ' Unicode として値を表示しています Console.WriteLine( b.Length ) Console.WriteLine(b(0).ToString("X")) Console.WriteLine(b(1).ToString("X")) Console.WriteLine(b(2).ToString("X")) Console.WriteLine(b(3).ToString("X")) Console.WriteLine( "----------" ) ' ************************************************************** ' Char 配列(Unicode)を String に変換 : Char() => String ' ************************************************************** ' Char 単位で変換して連結 Console.WriteLine( a_char(0).ToString() & a_char(1).ToString() ) ' いったん Byte 配列に戻す(Unicode) a_byte = Encoding.Unicode.GetBytes(a_char) Console.WriteLine( Encoding.Unicode.GetString(a_byte) ) ' いったん Byte 配列に戻す(Shift_JIS) a_byte = Encoding.GetEncoding("Shift_JIS").GetBytes(a_char) Console.WriteLine( Encoding.GetEncoding("Shift_JIS").GetString(a_byte) ) Console.WriteLine( "----------" ) ' ************************************************************** ' 文字列の "アイ" を Char 配列に変換 : String => Char() ' ************************************************************** a_char = base.ToCharArray() Console.WriteLine( a_char ) Console.WriteLine( a_char.Length ) b = Encoding.Unicode.GetBytes(a_char) ' Unicode として値を表示しています Console.WriteLine( b.Length ) Console.WriteLine(b(0).ToString("X")) Console.WriteLine(b(1).ToString("X")) Console.WriteLine(b(2).ToString("X")) Console.WriteLine(b(3).ToString("X")) Console.WriteLine( "----------" ) ' ************************************************************** ' Char 配列(Unicode)を Byte配列に変換 : Char() => Byte() ' ※ Byte 配列変換時は、キャラクタセットによって実体が変わります ' ************************************************************** a_byte = Encoding.Unicode.GetBytes(a_char) ' Unicode として値を表示しています Console.WriteLine( a_byte.Length ) Console.WriteLine(a_byte(0).ToString("X")) Console.WriteLine(a_byte(1).ToString("X")) Console.WriteLine(a_byte(2).ToString("X")) Console.WriteLine(a_byte(3).ToString("X")) Console.WriteLine( "----------" ) ' ************************************************************** ' バイト配列(Unicode) を String)に変換 : Byte() => String ' ※ Byte 配列内のキャラクタセットに合わせて変換する必要があります ' ************************************************************** Console.WriteLine( Encoding.Unicode.GetString(a_byte) ) Console.WriteLine( "----------" ) ' ************************************************************** ' 単一の文字列(String) を 単一の Char に変換 String => Char ' ************************************************************** Dim char1 As Char = Char.Parse("ア") Dim a_char2 As Char() = {char1,"イ"} Console.WriteLine( a_char2 ) End Sub End Module
関連する記事 VB.net : 文字単位の ASCII と Unicode VB.net と C# における KeyPress イベントの受け取り方 VB.net : テキストファイルとキャラクタセット
|
【VB.NET : ベーシックの最新記事】
- VB.net : 「ファイルを開くダイアログ」のパラメータを単純なテキストファイルより取得する
- VB.net での テキストファイルの読み書きを、出力時のみキャラクタセット毎に条件コンパイル指定する
- VB.net での DateDiff メソッドの使用方法
- VB.net : 整数 : カンマ編集/前ゼロ/前スペース/16進数文字列変換
- テキストファイルとキャラクタセットの処理
- VB.net : 文字単位の ASCII と Unicode
- コマンドプロンプト : 入力したキーストロークを表示しない readkey.exe
- VB.net/C# : 連続する文字の作成と良く使う文字列フォーマット
- VB.net : 各種ディレクトリパスの取得 : テンポラリ/システム/特殊ディレクトリの列挙
- VB.net : アプリケーションを開始した実行可能ファイルのパス
- VB.net : アプリケーションディレクトリ
- VB.NET : バッチファイル用ファイルの参照ダイアログ
- コマンドプロンプト : クリップボードにあるファイル情報を標準出力へ
- VB.NET(コマンドプロンプト) : 指定した文字列だけ色を変えて表示する
- VB.NET : SHA256