C#用转义版本替换字符串中的字符

时间:2012-07-12 14:08:32

标签: c# .net

我知道互联网上载有关于转义字符的信息,但我没有具体找到我需要的信息。我正在查询数据库中的库存信息,库存描述可能包含需要转义的各种“危险”字符。当我循环浏览数据读取器时,我需要用该字符的转义版本替换任何潜在问题字符的所有实例。我看过Regex.Escape,但它遗漏了几个关键字符,如引号。还有Regex.Replace,但如果我替换的字符可以是任意数量的东西,我如何告诉它替换字符串应该是什么?我该如何处理以下内容:

SQL查询为库存描述返回以下结果集:

  • 3/4“电线
  • 5'Rope @StoreX
  • 1 1 \ 4“Hex Nut

**我认识到描述本身存在更深层次的问题,但假设这是我必须处理的数据......

SqlDataReader dr = command.ExecuteReader()
while(dr.Read())
 {
    string partDescription = dr["Description"].ToString();  //Here is where I need to escape any characters posing a potential issue
 }

2 个答案:

答案 0 :(得分:1)

您知道Web Protection Library(以前称为AntiXSS)吗?这包含很多转义(HTML,Javascript,XML)。

答案 1 :(得分:1)

如果这仅用于显示目的(在网络上),那么您只需要在显示它们之前对Html进行编码。你可以使用HttpUtility

来做到这一点
HttpUtility.HtmlEncode("<script>alert('yo');</script>");