プログラミングにおいて、文字列をバイト配列に変換する処理は、ファイル操作、ネットワーク通信、暗号化など多岐にわたるシナリオで必要とされます。
今回は、特にUTF-8エンコーディングを例に、さまざまな文字(ASCII、日本語、数字)が含まれる文字列をバイト配列に変換する方法を紹介します。また、エンコーディングを変更することで、さまざまな文字コードに対応できることも示します。
サンプルコード
Encoding.UTF8のGetBytesメソッドを使用して、指定された文字列をUTF-8エンコーディングのバイト配列に変換しています。文字列がSJISの場合は、SJISエンコーディングを取得後、同様の処理を行います。
using System;
using System.Text;
class Program
{
static void Main()
{
// 変換する文字列: ASCII、日本語、数字を含む
string originalString = "Hello, 世界! 123";
// UTF-8エンコーディングを使用してバイト配列に変換
byte[] byteArray = Encoding.UTF8.GetBytes(originalString);
// バイト配列をコンソールに出力
Console.WriteLine("UTF8の場合の変換結果:");
foreach (var b in byteArray)
{
Console.Write($"0x{b.ToString("X2")} ");
}
Console.WriteLine();
Console.WriteLine();
// エンコーディングを変更する例(例: Shift_JIS)
Encoding sjisEncoding = Encoding.GetEncoding("Shift_JIS");
byte[] sjisBytes = sjisEncoding.GetBytes(originalString);
// Shift_JISでの変換結果をコンソールに出力
Console.WriteLine("Shift_JISの場合の変換結果:");
foreach (var b in sjisBytes)
{
Console.Write($"0x{b.ToString("X2")} ");
}
Console.WriteLine();
}
}
実行結果
UTF8の場合の変換結果:
0x48 0x65 0x6C 0x6C 0x6F 0x2C 0x20 0xE4 0xB8 0x96 0xE7 0x95 0x8C 0x21 0x20 0x31 0x32 0x33
Shift_JISの場合の変換結果:
0x48 0x65 0x6C 0x6C 0x6F 0x2C 0x20 0x90 0xA2 0x8A 0x45 0x21 0x20 0x31 0x32 0x33
まとめ
本記事では、C#において、文字列をバイト配列に変換する方法を紹介しました。