12

Can anyone suggest how to handle below url as values of parameter of strLocation is haveing special charecters ? Thanks in advance

http://localhost:8080/safp/contacts/FirmAddress.do?btnAction=FirmAddress&firmId=122379069&strLocation=!@#$%^&*()_+&async=true&newAccID=112
Puneet Purohit
  • 1,141
  • 6
  • 20
  • 41

2 Answers2

9

Use URLEncoder to encode your URL string with special characters.When encoding a String, the following rules apply:

  • The alphanumeric characters "a" through "z", "A" through "Z" and "0" through "9" remain the same.
  • The special characters ".", "-", "*", and "_" remain the same.
  • The space character " " is converted into a plus sign "+".
  • All other characters are unsafe and are first converted into one or more bytes using some encoding scheme. Then each byte is represented
    by the 3-character string "%xy", where xy is the two-digit
    hexadecimal representation of the byte. The recommended encoding
    scheme to use is UTF-8. However, for compatibility reasons, if an
    encoding is not specified, then the default encoding of the platform
    is used.

For example using UTF-8 as the encoding scheme the string The string ü@foo-bar would get converted to The+string+%C3%BC%40foo-bar because in UTF-8 the character ü is encoded as two bytes C3 (hex) and BC (hex), and the character @ is encoded as one byte 40 (hex).

Juned Ahsan
  • 66,028
  • 11
  • 91
  • 129
6

Use 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";

Note: Don't encode the whole url because it will also encode the // from http://

Tarsem Singh
  • 13,979
  • 7
  • 50
  • 70