【发布时间】:2010-07-02 15:43:36
【问题描述】:
这里似乎是一个非常简单的问题:
我有一个程序,其中有人在表单中输入字符串M&S 并运行查询。我了解& 是保留字符,因此必须进行编码。问题是在某些情况下似乎需要编码两次。
如果 URL 用于 javascript onClick 事件,正常的 URL 编码似乎可以正常工作(此处操作员可以单击列标题进行排序):
<td onClick="AJAX_Get('http://10.0.0.195/program.exe?Qry147=M%26S&sortmethod1=161')">
但是,如果在锚点中使用了URL(虽然锚点实际上使用了AJAX),似乎需要编码两次:
<a href="javascript:AJAX_Get('http://10.0.0.195/program.exe?Qry147=M%2526S&sortmethod1=147')" title='Refresh'>Refresh</a>
上面的两个例子都可以正常工作。然而,它们是手工生成的测试用例。不幸的是,在应用程序中,当我实际生成 URL 时,我不知道它会被如何使用。
如果我对 URL 参数编码一次 (M%26S),它在 onClick 中可以正常工作。但是在锚点中使用这种方式,服务器将 URL 视为...Qry147=M&S&sortmethod1=147... - 因此在返回给服务器之前它必须是未编码的。
如果我对它进行两次编码 (M%2526S),则锚可以工作,但对于 onClick,服务器会看到 ...Qry147=M%2526S...。
我觉得我在这里遗漏了一些东西。有没有办法让这两种情况下的工作相同?
【问题讨论】:
-
你能举例说明你是如何实际使用这个值的吗?
-
抱歉,问题没有完全正确显示。猜猜我需要努力逃离我的cmets!稍等一下,我会尝试编辑它。
-
查看源代码... 谈不上主动! :) 问题现在显示正确,对此表示歉意。
标签: javascript html url encoding