Pages

2012/04/10

[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

Related Posts Plugin for WordPress, Blogger...