[C#] 文字列をBase64でエンコードする

このページのタグ:[C#] [Base64]
文字列をBase64でエンコードするコードを紹介します。
Base64でエンコードするにはConvertクラスのToBase64String()メソッドを用います。ポイントは、Base64のエンコードをする前に文字コードをJISやSJIS,EUCに変換する必要がある点です。

UI

以下のUIを作成します。TextBox2つとButtonを2つ配置します。

コード

以下のコードを記述します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Base64EncodeDecodeDemo
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button_Encode_Click(object sender, EventArgs e)
    {
      string input = textBox_Input.Text;

      Encoding enc = Encoding.GetEncoding(50220);
      //Encoding enc = Encoding.GetEncoding("iso-2022-jp");
      
      byte[] encstr = enc.GetBytes(input);
      string base64str = Convert.ToBase64String(encstr);

      textBox_Output.Text = base64str;
    }
  }
}

解説


private void button_Encode_Click(object sender, EventArgs e)
{
  string input = textBox_Input.Text;

  Encoding enc = Encoding.GetEncoding(50220);
  //Encoding enc = Encoding.GetEncoding("iso-2022-jp");
      
  byte[] encstr = enc.GetBytes(input);
  string base64str = Convert.ToBase64String(encstr);

  textBox_Output.Text = base64str;
}

string input = textBox_Input.Text;
入力用のテキストボックスに入力された文字列を変数に代入します。


Encoding enc = Encoding.GetEncoding(50220);
//Encoding enc = Encoding.GetEncoding("iso-2022-jp");
Base64でエンコードする前に入力文字列の文字コードをUTF-8から変換する必要があります。一般的にはJIS(iso-2022-jp)に変換することが多いです。上記のコードでJISのEncodingクラスを取得します。


byte[] encstr = enc.GetBytes(input);
入力文字列の文字コードをJISに変換します。


string base64str = Convert.ToBase64String(encstr);
文字コードをJISに変換した文字列をBase64でエンコードします。


textBox_Output.Text = base64str;
エンコードした文字列を出力用のテキストボックスに表示します。

実行結果

入力用のテキストボックスに文字列を入力し、[Encode]ボタンを押すとエンコード結果が出力用のテキストボックスに表示されます。


登録日 :2011-11-02    最終更新日 :2011-11-02
この記事に関連するページ
このページのタグ:[C#] [Base64]
Japanese
プライバシー    iPentecについて
iPentec all rights reserverd. (ISDC)