检测并转义所有特殊字符
本文关键字:特殊字符 转义 检测 | 更新日期: 2023-09-27 18:18:37
我有一个字符串,用于发送到邮件。
我想找到所有的特殊字符,然后转义它们,使我的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";
那么邮件将包含This is a string to test c
。
如何解决这个问题,以获得This is a string to test c# code with a mailto
?
如果有的话,它也必须是backLine。
谢谢。
这并不是真正关于转义特殊字符,而是将字符串编码为可以由javascript调用window.open
处理的有效URL。即使是像<,>这样的"正常"字符,在处理url时也被认为是特殊的。
幸运的是,. net已经可以用httutility . urlencode将字符串编码为URL。这个调用将替换特殊字符,如<和>的URL编码值%3c和%3e。和>
应该注意只对传递给String的形参进行编码。格式,而不是整个格式化字符串,因为UrlEncode将编码整个字符串,包括?和,人物:
String strCmd = String.Format("window.open('"mailto:{0}?subject={1}&body={2}'");",
HttpUtility.UrlEncode(toEmail),
HttpUtility.UrlEncode(subject),
HttpUtility.UrlEncode(body));