#author("2019-11-26T21:54:35+09:00","","") #author("2019-11-26T21:56:47+09:00","","") #navi(../) * 文字列をバイト配列に変換・バイト配列を文字列に変換する方法 [#b394f0be] 文字列をByteの配列、逆のByte配列を文字列に変換したい場合は、~ ''System.Text.Encoding.GetEncoding''を使用します。~ 以下にSystem.Text.Encoding.GetEncodingのGetBytes,GetStringを使って~ Byte配列からString、逆のStringからByte配列に変換するサンプルコードを紹介します。 #contents * 参考サイト [#i384ec71] -[[Microsoft|.NET Encoding.GetEncoding メソッド>https://docs.microsoft.com/ja-jp/dotnet/api/system.text.encoding.getencoding?view=netframework-4.8]] * StringをByte配列に変換する [#i874b6be] 以下に C#、Visual Basic(VB)を使ったサンプルコードを紹介します。~ Visual Studio 2019のプログラムファイルはUTF-8 BOM付で保存されていたので、~ GetEncodingの文字コードをutf-8にしました。~ utf-8の部分を他の文字コードにすることができます。~ ファイルなどから読み込んだ文字列をByte列に変換する場合は、utf-8の部分を~ 文字列にあった文字コードを設定してください。 |BGCOLOR(NAVY):COLOR(WHITE):''文字コード''|BGCOLOR(NAVY):COLOR(WHITE):''設定値''| |シフトJIS|932&br;または&br;Shift_JIS| |UTF-8|utf-8| |JISコード|iso-2022-jp| |EUC|euc-jp| ** C# サンプルコード [#z231968d] 以下にGetEncodingを使ったC#のサンプルコードになります。 #ref(Program.cs) using System; namespace GetEncCS { class Program { static void Main(string[] args) { String str = "こんにちは!"; //StringをByte配列に変換 Byte[] b = System.Text.Encoding.GetEncoding("utf-8").GetBytes(str); //Byte配列をStringに変換 String str2 = System.Text.Encoding.GetEncoding("utf-8").GetString(b); } } } ** Visual Basic サンプルコード [#zfdb48bf] 以下にGetEncodingを使ったVisual Basicのサンプルコードになります。 #ref(Module1.vb) Module Module1 Sub Main() Dim str As String = "こんにちは!" 'StringをByte配列に変換 Dim b As Byte() = System.Text.Encoding.GetEncoding("utf-8").GetBytes(str) 'Byte配列をStringに変換 Dim str2 As String = System.Text.Encoding.GetEncoding("utf-8").GetString(b) End Sub End Module ** 実行結果 [#vdbb4585] 以下の出力はCygwinのhexdumpコマンドを使ってサンプルコードで変換した「こんにちは!」の~ 文字コードをHEXで表示させたときの出力です。 $ echo こんにちは! | hexdump -C 00000000 e3 81 93 e3 82 93 e3 81 ab e3 81 a1 e3 81 af ef |................| 00000010 bc 81 0a |...| 以下、デバッガで止めて変数をウォッチした時のキャプチャになります。 -String(文字列)からByte配列に変換 ***String(文字列)からByte配列に変換 [#wa3e6cfb] #ref(01.png) -Byte配列からString(文字列)に変換 ***Byte配列からString(文字列)に変換 [#e3c89367] #ref(02.png) 以上、StringをByte配列へ変換とByte配列からStringに変換するサンプルコードでした。 #htmlinsert(windev-btm.html)