1

我正在创建一个应用程序,它在用户输入(街道、城市)的帮助下屏幕抓取网站。但是,街道或城市可能有字符“å”、“ä”和“ö”,需要对其进行编码。

我尝试过 encodeURIComponent,但是当直接在页面上的表单中输入街道和城市时,它的输出与我要抓取的站点不同(见下文)。我可以使用/做什么来获得所需的输出?

var url = 'http://www.foosite.com/result.jspv?street=' +
encodeURIComponent(street) + '&city=' + encodeURIComponent(city);

From my app:   http://www.foosite.com/result.jspv?street=Vaktarev%C3%A4gen&city=M%C3%B6nster%C3%A5s
From the site: http://www.foosite.com/result.jspv?street=Vaktarev%E4gen&city=M%F6nster%E5s
4

1 回答 1

1

该站点可能正在使用escape,它返回一个 Unicode 代码点。相反,encodeURIComponent生成一个 UTF-8 值。(向下滚动到http://www.utf8-chartable.de/U+00E4上的代码点以获取 的不同值。)ä

我通常不鼓励使用该escape功能,因为它没有在任何标准中指定。但是,由于这可能是匹配站点行为的最简单方法(遗憾的是,它不使用首选encodeURIComponent),因此它肯定是您在这里的最佳选择。尽管是非标准的,但它几乎可以在所有浏览器中运行。

于 2012-12-28T15:54:16.270 回答