0

我试图使用 Win8-Searchbar 通过 http-Server 进行扫描。

string uriString = "http://myServer:myPort/?ItemList,SQLFilter=Title LIKE '%" + searchTerm + "%'";
Uri uri = new Uri(uriString);

“%”、“”(空白)等特殊符号正在转换为“%25”、“%20”......

我怎样才能防止这些转变?http-Server 不理解它:(

4

1 回答 1

3

w3schools称,

URL 只能使用 ASCII 字符集通过 Internet 发送。

由于 URL 通常包含 ASCII 集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。

URL 编码将不安全的 ASCII 字符替换为“%”,后跟两个十六进制数字。

这就是为什么会发生 URL 编码并且无法避免它的原因。

在服务器端,您需要使用HttpUtility.UrlDecode来解码字符串。


与问题无关,但非常重要:

在 URL 中暴露类似的东西SQLFilter=Title LIKE '%" + searchTerm + "%'"代表了一个巨大的安全问题。任何人都可以修改它以在您的 DB 上运行任意语句

于 2012-10-31T08:58:00.287 回答