Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle special characters in url as parameter values?

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
like image 342
Puneet Purohit Avatar asked Oct 22 '13 10:10

Puneet Purohit


People also ask

How do you represent special characters in a URL?

URL encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits. URLs cannot contain spaces. URL encoding normally replaces a space with a plus (+) sign or with %20.

What characters are allowed in URL parameters?

Only alphanumerics, the special characters "$-_. +! *'(),", and reserved characters used for their reserved purposes may be used unencoded within a URL. The reserved characters are ";", "/", "?", ":", "@", "=" and "&", which means you would need to URL encode them if you wish to use them.


1 Answers

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).

like image 140
Juned Ahsan Avatar answered Sep 28 '22 07:09

Juned Ahsan