C# 实现escape功能

Js段调用escape,可以解决掉很多特殊字符的显示处理,但是如果你需要在后台处理的时候,需要转换,不是转义,比如说你是在前台方法里面显示一段内容,比如:οnmοuseοver=\"tooltip.show('aaaa')\"; 但是如果这个时候aaa中间有个单引号,如:οnmοuseοver=\"tooltip.show('aaa'a')\";那到前台处理的时候就会出问题了。处理方法如下:

  chr(39) '  转换后就是 '如此转换后还需要用HttpUtility.HtmlEncode 

οnmοuseοver=\"tooltip.show('" + HttpUtility.HtmlEncode(EscapeAndRemoveXSS(strDisplayValue)) + "')\"

public static string EscapeAndRemoveXSS(object objInput)
{
      StringBuilder sbdOutput = new StringBuilder();

if (objInput != null)
{
StringBuilder sbdInput = new StringBuilder(objInput.ToString());
for (int intIndex = 0; intIndex < sbdInput.Length; intIndex++)
{
char chrInput = sbdInput[intIndex];
int intChar = System.Convert.ToInt32(chrInput);
//We will encode every characters except "A-Z", "a-z", "0-9", "&", "#", ";", "\", " " by default
if (intChar == 32 || intChar == 35 || intChar == 38  || (intChar >= 48 && intChar <= 57) ||
intChar == 59 || (intChar >= 65 && intChar <= 90) || intChar == 92 || (intChar >= 97 && intChar <= 122) || intChar == 58 || intChar == 33)
{
sbdOutput.Append(chrInput);
}

else
{
//strOutput = strOutput + chrInput;
sbdOutput.Append("&#" + intChar + ";");
}
}
}
return sbdOutput.ToString()

}

转载于:https://www.cnblogs.com/Teresa-luo/p/5063416.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值