- 追加された行はこの色です。
- 削除された行はこの色です。
#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)
//#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)
//#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)