js、c#转义

首先,了解一波转义字符串。先百度了“转义字符”,发现如下:

      转义字符串(Escape String),即字符实体分成三部分:第一部分是一个&符号,第二部分是实体名字或者#加上实体编号;第三部分是一个分号。

      几乎每种语言都有自己的转义符,例如:HTML、JAVA、XML、ORACLE、JS等。

      HTML的&lt; &gt;&amp;&quot;&copy;分别是<,>,&,",©;的转义字符。

      XML只有5个转义符: &lt; &gt;&amp; &quot; &apos。

那么,我这里举我遇到的两个实际案例来说明。

1.通过js方式实现调用outlook并写入内容

       我本地有安装outlook,然后js中使用window.location=mailto...方式实现,不过发现一个问题,就是当我的内容中出现“%S”时,在邮件中显示为“?”。经查,发现%在邮件中有特殊作用,例如内容中如果出现“%0a”则换行。而“%S”没有这种用法,所以导致识别不出来。解决方案:

       string content = escape(content);

2.字符串传入.net后台(c#)并存入sqlserver数据库,字段类型为xml

       发现如果字符串中有“&”则存入失败,后面发现xml中不能识别“&”,需要转义。首先我查到了下面一对函数:

      System.Text.RegularExpressions.Regex.Escape(s)  

      System.Text.RegularExpressions.Regex.Unescape(s)

      尝试了下,不行,不过这里我不深究这个,找到另外一对函数:

      System.Web.HttpUtility.UrlEncode()

      System.Web.HttpUtility.UrlDecode()

      这个是ok的。

目前仍然有两个confuse:

      1.sqlserver的xml类型

      2.c#例子中的前一对函数和后一对函数的具体作用和区别

记录一次解决转义字符的过程,期望下次做的更好。

发布了289 篇原创文章 · 获赞 44 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/spfLinux/article/details/88728721