C# 如何使用asp net对url查询字符串中的单引号进行转义

C# 如何使用asp net对url查询字符串中的单引号进行转义,c#,asp.net,C#,Asp.net,我正在我的web应用程序中构建url,并尝试将一个名称作为查询字符串传递,Bob O'Neal,令我惊讶的是,它似乎没有通过UrlEncode正确转义,而且网络上似乎没有任何内容讨论如何处理这个问题 是否有一种优雅的解决方案可以正确处理查询字符串中的转义单引号?您可以使用HttpUtility.UrlEncode或其更安全的对应项对查询字符串进行编码,但不需要这样做。请注意,您将能够在QueryString字典中检索未编码的文档 HttpUtility.UrlEncode("'"); //%27

我正在我的web应用程序中构建url,并尝试将一个名称作为查询字符串传递,Bob O'Neal,令我惊讶的是,它似乎没有通过UrlEncode正确转义,而且网络上似乎没有任何内容讨论如何处理这个问题


是否有一种优雅的解决方案可以正确处理查询字符串中的转义单引号?

您可以使用
HttpUtility.UrlEncode
或其更安全的对应项对查询字符串进行编码,但不需要这样做。请注意,您将能够在QueryString字典中检索未编码的文档

HttpUtility.UrlEncode("'"); //%27

您可以使用
HttpUtility.UrlEncode
或其更安全的对应项对查询字符串进行编码,但不需要这样做。请注意,您将能够在QueryString字典中检索未编码的文档

HttpUtility.UrlEncode("'"); //%27

还有一个
urlpathcode
方法,你试过那个吗?

还有一个
urlpathcode
方法,你试过那个吗?

UrlEncode编码单引号('),但不编码倾斜单引号(`)

如果您的“错误”并非如此(该主题的OP声称并非如此),您将必须实现所述的
UseMe
功能(见下文)

UrlEncode编码单引号('),但不编码倾斜单引号(`)


如果您的“错误”并非如此(该主题的OP声称并非如此),您将必须实现所述的
UseMe
功能(见下文)

如果要将URL存储在要在客户端上执行的javascript语句中,则需要执行以下操作:

sURL = sURL.Replace("'", "\'");

如果要将URL存储在要在客户端上执行的javascript语句中,则需要执行以下操作:

sURL = sURL.Replace("'", "\'");

你能提供URLEncode()的输出吗?关于这个主题的有用信息:这只在Firefox中吗?您是试图从客户端还是服务器端转义此URI?如果您有选择(比如,在提交的输入表单上),我建议您使用客户端,您可以简单地使用Javascript对字符进行编码;单引号应该正确编码。Bob O'Neal=>Bob+O'Neal的输出如下所示,它处理空格,但不处理单引号。我正试图在服务器端实现这一点。你能提供URLEncode()的输出吗?关于这个主题的有用信息:这仅在Firefox中吗?您是试图从客户端还是服务器端转义此URI?如果您有选择(比如,在提交的输入表单上),我建议您使用客户端,您可以简单地使用Javascript对字符进行编码;单引号应该正确编码。Bob O'Neal=>Bob+O'Neal的输出如下所示,它处理空格,但不处理单引号。我试图在服务器端这样做这是答案,经过更多的阅读,结果证明单引号不需要转义,而且当我在javascript中使用它时,它不喜欢它,谢谢。JS还需要一些其他字符串的
替换
。这是答案,经过更多的阅读,发现单引号不需要转义,当我在javascript中使用它时,它不喜欢它,Thanky you.JS还需要一些其他字符串的
替换
。这在.NET 4.0之前不起作用。请参见.NET4.0之前的版本。看见