Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用转义版本替换字符串中的字符_C#_.net - Fatal编程技术网

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

C# 用转义版本替换字符串中的字符,c#,.net,C#,.net,我知道互联网上充斥着关于转义字符的信息,但我没有找到我需要的具体信息。我正在从数据库查询库存信息,库存描述可能包含各种需要转义的危险字符。当我在数据读取器中循环时,我需要用该字符的转义版本替换任何潜在问题字符的所有实例。我看过Regex.Escape,但它遗漏了一些关键字符,如引号。还有Regex.Replace,但是如果我知道它要替换的字符可以是很多东西,那么如何告诉它替换字符串应该是什么呢?我将如何处理以下事项: SQL查询为库存描述返回以下结果集: 3/4线 StoreX的5'绳索 1 1

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

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

3/4线 StoreX的5'绳索 1 1\4六角螺母 **我承认描述本身存在更深层次的问题,但假设这是我必须处理的数据

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
 }

你知道以前被称为AntiXS的东西吗?它包含大量转义HTML、Javascript、XML。

如果这只是为了在web上显示,那么您只需要在显示值之前对其进行HTML编码。您可以使用HttpUtility实现这一点

HttpUtility.HtmlEncode("<script>alert('yo');</script>");

您想在哪里使用这些转义字符?什么字符需要转义以及转义的类型取决于您想在哪里使用它!为什么需要将它们从SQL Server中释放出来?您需要转义SQL Server中的内容,以确保这些字符不会更改更新查询的语义;但是,SQL Server的出现并没有这种效果。所以,我不清楚你为什么要逃出这里……也许我只是误解了一条错误信息。数据正在通用列表中的web服务上输出。当我尝试调用web服务时,第48列58273行出现错误:xmlParseCharRef:invalidxmlChar@PeterRitchie-不要转义进入数据库的文本使用参数。如果您现在用HTML转义,但以后想以纯文本CSV导出的形式显示,那么您需要取消转义!最好在显示/输出之前进行转义,这样您就知道需要什么转义了。@Hans,是的;这是处理需要逃避的理由的一种方法。OP没有说明他们为什么要逃跑。他们需要为数据库转义吗,他们需要HTML转义吗,他们需要URL转义吗,等等。。。