[C#] 無効な文字を変換してから base64 形式へエンコード

// 無効文字を変換
 s = System.Security.SecurityElement.Escape("<\>&");

// "utf-8" 等でも OK 。
Encoding enc = Encoding.GetEncoding(50220);
byte[] byt = enc.GetBytes(s);
string base64 = Convert.ToBase64String(byt);                

文字列のエスケープに関しては、.NET Framework 4.0 より SecurityElement.Escape というメソッドが追加された。今さらという印象があるが……。
http://msdn.microsoft.com/ja-jp/library/system.security.securityelement.escape.aspx - msdn

base64 への変換に関しては、無効な文字列が存在していると落ちてしまうため、
このように一度エスケープ処理をかませてから変換したほうがよいだろう。
ちなみに、GetEncoding の引数はコードで指定しているが、文字列でも良い。
コードに関しては以下のページが参考になる。
http://www.atmarkit.co.jp/fdotnet/dotnettips/013enumenc/enumenc.html -@IT

このブログの人気の投稿

Excel で入力した文字に勝手に取り消し線が入る

コピーした行の挿入が表示されない時はフィルタされていないかチェック