Urlエンコードされちゃ、マズイのをゴリゴリ回避
URLエンコードの特性上(?)、ダブルコーテーション["] → %22、半角スペース[ ] → + にと変換されてしまうらしいので、ダミー文字列に置き換えて、UrlEncodeした後、再度ダミーを元に戻す。
→ ["]は、そのままで大丈夫だったので、とりあえずスペースだけ。
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
private string MailEncode(string iData, string iEncNm)
{
// ダミー置換定義 [i,0]=ORG [i,1]=ダミー
// 定義1個しかないけど、、、とりあえず配列にしておく。 後で追加するかも!?
// ダミー文字列は、URLエンコードされない文字で、かつ元データで使わないだろう・・・と思われるものを適切に(適当に?)
const int ORG = 0;
const int DMY = 1;
string[,] RepDefs = new string[,] { {" ", "(((SpaceDeSuYo)))"}};
string RtnVal = iData;
System.Text.Encoding enc = System.Text.Encoding.GetEncoding(iEncNm);
int MaxRow = RepDefs.GetLength(0); // 定義行数
for (int i = 0; i < intMaxRow; i++)
{
// URLエンコードしたくない文字を一旦ダミーの文字に置換
RtnVal = RtnVal.Replace(RepDefs[i, ORG], RepDefs[i, DMY]);
// URLエンコード
RtnVal = System.Web.HttpUtility.UrlEncode(RtnVal, enc);
// ダミーの文字にしたものを、戻す
RtnVal = RtnVal.Replace(strRepDefs[i, DMY], RepDefs[i, ORG]);
}
return RtnVal;
}
参考:自blog
・VC# mailtoでメール作成 http://oojima33.blogspot.com/2008/12/vcmailto.html
ってか、本当は、1記事で書いていたんだけど、途中から文章が壊れる。。。ので、2分割しただけ。 文字数多すぎた? そのうち調べてみようかな。
参考:自blog
・VC# mailtoでメール作成 http://oojima33.blogspot.com/2008/12/vcmailto.html
ってか、本当は、1記事で書いていたんだけど、途中から文章が壊れる。。。ので、2分割しただけ。 文字数多すぎた? そのうち調べてみようかな。
0 件のコメント:
コメントを投稿