#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS