如果变量来自数据库,如何转义双引号?

时间:2016-01-27 15:30:20

标签: asp-classic

我知道Double引号可以像这样转义:

string test = "He said to me, ""Hello World"". How are you?" 

或通过:

string test = "He said to me, \"Hello World\" . How are you?"

但我不想更改数据库中的值,我想从数据库中获取值并将其放入URL中。例如:

href="http://www.abcd.com/movie/<%= mTitle%>/"

如果字符串包含双引号,则会中断URL。

1 个答案:

答案 0 :(得分:2)

在这种情况下,您不是“转义”引号,而是 URL-encoding 它们。问题不在于字符串本身。问题是许多“特殊字符”在URL的上下文中具有其他含义,或者以某种方式混淆了该URL的解析,并且需要进行编码。

(在这种情况下,它不一定是URL本身,而是被引号混淆的HTML属性。)

这样的事情:

<a href="http://www.abcd.com/movie/<%= server.urlEncode(mTitle) %>">

所以不是这个输出:

<a href="http://www.abcd.com/movie/A"Quoted"String">

你会得到这个:

<a href="http://www.abcd.com/movie/A%22Quoted%22String">