【C#】文字列をバイト配列に変換する方法

C#

プログラミングにおいて、文字列をバイト配列に変換する処理は、ファイル操作、ネットワーク通信、暗号化など多岐にわたるシナリオで必要とされます。

今回は、特に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#において、文字列をバイト配列に変換する方法を紹介しました。

タイトルとURLをコピーしました