-1

mailtoに送信するために使用される文字列があります。

すべての特別な文字を見つけてエスケープし、特別な文字を書くという選択を避けることなく、mailto を適切に機能させたいと考えています。

たとえば、文字列に が含まれている場合#、mailto の本文はその前で停止します。

String strCmd = String.Format("window.open(\"mailto:{0}?subject={1}&body={2}\");",
                    toEmail, subject, body);

私の文字列本体が次のような場合:

body = "This is a string to test c# code with a mailto";

その後、mailto には が含まれますThis is a string to test c

を取得するには、どうすればこれを修正できThis is a string to test c# code with a mailtoますか?

ある場合はバックラインも作成する必要があります。

ありがとうございました。

4

1 に答える 1

4

これは実際には特殊文字をエスケープすることではなく、javascript 呼び出しで処理できる有効な URL として文字列をエンコードすることですwindow.open。<、> などの「通常の」文字でさえ、URL を扱う場合は特別なものと見なされます。

幸いなことに、.NET はすでにHttpUtility.UrlEncodeを使用して文字列を URL としてエンコードできます。この呼び出しは、< や > などの特殊文字を URL エンコード値 %3c および %3e に置き換えます。

UrlEncode は ? および & 文字:

String strCmd = String.Format("window.open(\"mailto:{0}?subject={1}&body={2}\");",
                HttpUtility.UrlEncode(toEmail), 
                HttpUtility.UrlEncode(subject), 
                HttpUtility.UrlEncode(body)); 
于 2013-06-14T13:25:55.213 に答える