Q. 文字列を Base64 にエンコードしたりデコードしたりするのってどーやるの?

A. つ Convert

やあ(´・ω・`)(ry
久しぶり〜。
ついったーID が規制されてるから暇つぶしに溜めておいたネタを消化するよ〜。

Base64エンコーディングしたくなることってあると思うけど、どーやってやったらいいのかパッと見じゃ分からないよねっ。
ちょっとだけまとめてみたよっ。

文字列を Base64エンコードする場合

Convert.ToBase64String() を使えばいいらしいんだけど、文字列をそのまま入れることはできないらしい。
byte 配列を入れろーって書いてあるけど、 string じゃ char 配列にしかならないよ〜〜。
心配ご無用!
Encoding で char 配列を byte 配列にエンコードすればいいんだっ。
例では UTF8 でキメてるけど、多分 Default なのかな〜。

string encoded_text = Convert.ToBase64String( Encoding.UTF8.GetBytes( text.ToCharArray() )
                                              Base64FormattingOptions.None
                                            );

Base64エンコードされた文字列をデコードする場合

デコードでは Convert.FromBase64String() を使えばいいんだ。
でも、返ってくるのは byte 配列。
ちょっと泣いちゃうね。
でもやっぱり心配しなくてもだいじょーぶっ。
byte 配列から文字列をデコードしてくれる Encoding#GetString() を使えば文字列がでてくるよっ。

byte[]  decoded_bytes = Convert.FromBase64String( encoded_text );
string  decoded_text  = Encoding.UTF8.GetString( decoded_bytes,
                                                 0,
                                                 decoded_bytes.Length
                                               );