12

strLocation のパラメータの値が特別な文字を持っているため、URLの下を処理する方法を誰かが提案できますか? 前もって感謝します

http://localhost:8080/safp/contacts/FirmAddress.do?btnAction=FirmAddress&firmId=122379069&strLocation=!@#$%^&*()_+&async=true&newAccID=112
4

2 に答える 2

9

URLEncoderを使用して、URL 文字列を特殊文字でエンコードします。文字列をエンコードする場合、次の規則が適用されます。

  • 英数字の「a」から「z」、「A」から「Z」、および「0」から「9」は同じままです。
  • 特殊文字「.」、「-」、「*」、および「_」は変わりません。
  • スペース文字「 」はプラス記号「+」に変換されます。
  • 他のすべての文字は安全ではなく、最初に何らかのエンコード方式を使用して 1 つ以上のバイトに変換されます。次に、各バイトは
    3 文字の文字列 "%xy" で表されます。ここで、xy は
    バイトの 2 桁の 16 進数表現です。推奨されるエンコード
    方式は UTF-8 です。ただし、互換性の理由から、
    エンコーディングが指定されていない場合は、プラットフォームのデフォルトのエンコーディング
    が使用されます。

たとえば、UTF-8 をエンコード スキームとして使用すると、文字列The string ü@foo-barが変換されますThe+string+%C3%BC%40foo-bar。これは、UTF-8 では文字 ü が C3 (16 進数) と BC (16 進数) の 2 バイトとしてエンコードされ、文字 @ が 1 バイト 40 ( 16 進数)。

于 2013-10-22T10:45:58.920 に答える
6

URLEncoder .encode()を使用する

String url="http://localhost:8080/safp/contacts/FirmAddress.do?btnAction=FirmAddress&firmId="+URLEncoder.encode("122379069","UTF-8")+"&strLocation="+URLEncoder.encode("!@#$%^&*()_+","UTF-8")+"&async=true&newAccID=112";

encode注:送信元もエンコードするため、URL 全体を使用しないで//ください。http://

于 2013-10-22T10:48:48.853 に答える