[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