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 に答える