logo

Java URL-encoder

Java URLEncoder is een hulpprogrammaklasse die wordt gebruikt om de URL's te coderen (Uniform Resource Locator). Betrouwbaarheid en veiligheid worden gegarandeerd door het coderen van de URL. Wanneer de gebruiker een bepaalde site opvraagt ​​via de get-methode, worden de formulierparameters en hun waarden toegevoegd na het '?' log in met de URL. Het probleem doet zich echter voor wanneer speciale tekens worden gebruikt in de waarden die niet worden geïnterpreteerd. Over het algemeen handelt HTML het coderingsgedeelte automatisch af door de speciale tekens te verwerken en deze om te zetten in de tekens die zijn toegestaan ​​voor een soepele afhandeling van alle bewerkingen. Het bevestigt echter niet de nauwkeurige codering. Daarom kunnen we niet alleen op HTML-functies vertrouwen. Om de URL's expliciet te coderen, gebruiken we dus de URL Encoder-klasse van Java.

Het is belangrijk om de gegeven regels te volgen bij het coderen van een string:

  1. De alfabetische tekens van 'a' tot 'z', of van 'A' tot 'Z' en de cijfers van '0' tot '9' blijven hetzelfde.
  2. De alfanumerieke tekens en enkele speciale tekens zoals '*', '_', '-' en '.' verander niet.
  3. Alle spaties worden omgezet in '+'-tekens.
  4. W3C raadt aan om 'UTF-8' te gebruiken voor coderingsdoeleinden. Alle andere tekens worden gecodeerd door een of meer bytes met behulp van het opgegeven coderingsschema. Ze worden omgezet in een reeks van drie tekens in de vorm %xy, waarbij xy de hexadecimale weergave van het coderingsteken vertegenwoordigt.

Voorbeeld 1:

Als het gebruikersverzoek zodanig is dat de parameterwaarde speciale tekens en spaties bevat als

.volgende Java

u@Java T-punt

Als de gebruikte codering UTF-8 is, wat het meest wordt gebruikt, wordt het '@'-teken omgezet in '%40' en spaties in '+'-tekens. De gecodeerde string ziet er als volgt uit:

Hoe een script op Linux uit te voeren

u%40Java+T+Punt

Voorbeeld 2:

Als het gebruikersverzoek zodanig is dat de parameterwaarde geen speciale tekens en spaties bevat als

u@JavaTpoint

De gecodeerde string ziet er als volgt uit:

css eerste kind

u%40JavaTPoint

Coderings-URL

Om een ​​URL te coderen, biedt Java de klasse URLEncoder de methode encode().

URLEncoder.encode( )

De methode vertaalt een tekenreeks naar het gecodeerde application/x-www-form-url-formaat met behulp van een specifiek coderingsschema. Het verkrijgt de bytes voor onveilige tekens met behulp van het meegeleverde coderingsschema.

Syntaxis:

 public static String encode(String s, String enc) throws UnsupportedEncodingException 

Opmerking: het World Wide Web Consortium raadt aan het UTF-8-coderingsschema te gebruiken. Anders veroorzaakt het verschillende onverenigbaarheden.

Parameters:

S: De tekenreeks die moet worden vertaald.

enc: De naam van de ondersteunde tekencodering, zoals 'UTF-8'.

Geeft terug: Het retourneert de vertaalde String.

Java-stringbouwer

Gooit: UnsupportedEncodingException wordt gegenereerd wanneer het genoemde coderingsschema niet wordt ondersteund.

UrlEncoder.java

 import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; public class UrlEncoder { public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException { String baseUrl = 'https://www.javatpoint.com/'; // String to be encoded as requested by the user String query = ' u@ java T point'; System.out.println(' URL without any encoding : ') ; // creating an object of the URL class URL url = new URL(baseUrl + query) ; System.out.println( url ) ; // using the encode( ) method to encode the URL System.out.println( ' URL after encoding : ' ) ; url = new URL( baseUrl + URLEncoder.encode( query, 'UTF-8' ) ) ; System.out.println( url ) ; } } 

Uitgang:

 URL without any encoding: https://www.javatpoint.com/ u@ java T point URL after encoding: https://www.javatpoint.com/+u%40+java+T+point