logo

Java URL Encoder

Java URLEncoder je třída nástroje používaná ke kódování adres URL (Uniform Resource Locator). Spolehlivost a bezpečnost je zajištěna pomocí kódování URL. Když uživatel požaduje konkrétní web pomocí metody get, parametry formuláře a jejich hodnoty jsou přidány za '?' přihlaste se k URL. Problém však nastává, když jsou v hodnotách použity speciální znaky, které nejsou interpretovány. Obecně HTML zpracovává kódovací část automaticky tím, že zpracovává speciální znaky a převádí je na znaky, které jsou povoleny pro hladké zpracování všech operací. Nepotvrzuje však přesné kódování, proto se nemůžeme spoléhat pouze na funkce HTML, a proto k explicitnímu kódování adres URL používáme třídu URL Encoder jazyka Java.

Při kódování řetězce je důležité dodržovat daná pravidla:

  1. Abecední znaky od „a“ do „z“ nebo od „A“ do „Z“ a číslice od „0“ do „9“ zůstávají stejné.
  2. Alfanumerické znaky a některé speciální znaky jako '*', '_', '-' a '.' neměň.
  3. Všechny mezery jsou převedeny na znaménka „+“.
  4. W3C doporučuje pro účely kódování používat 'UTF-8'. Všechny ostatní znaky jsou kódovány jedním nebo více bajty pomocí zadaného schématu kódování. Jsou převedeny do tříznakového řetězce ve tvaru %xy, kde xy představuje hexadecimální reprezentaci kódovacího znaku.

Příklad 1:

Pokud je požadavek uživatele takový, že hodnota parametru obsahuje speciální znaky a mezery jako

python nový řádek

u@Java T bod

Pokud je použité kódování UTF-8, které se nejčastěji používá, znak '@' bude převeden na '%40' a mezery budou převedeny na znaky '+'. Zakódovaný řetězec vypadá takto:

java boolean na řetězec

u%40Java+T+Point

Příklad 2:

Pokud je požadavek uživatele takový, že hodnota parametru neobsahuje žádné speciální znaky a mezery jako

u@JavaTpoint

Zakódovaný řetězec vypadá takto:

np.linspace

u%40JavaTPoint

Kódování URL

Aby bylo možné kódovat adresu URL, třída Java URLEncoder poskytuje metodu encode().

URLEncoder.encode( )

Metoda překládá řetězec do zakódovaného formátu application/x-www-form-url pomocí specifického schématu kódování. Získá bajty pro nebezpečné znaky pomocí dodaného schématu kódování.

Syntax:

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

Poznámka: World Wide Web Consortium doporučuje používat schéma kódování UTF-8. Jinak to způsobuje různé nekompatibility.

Parametry:

s: Řetězec, který má být přeložen.

enc: Název podporovaného kódování znaků, například „UTF-8“.

Vrácení: Vrátí přeložený řetězec.

řetězec na char java

Hody: Výjimka UnsupportedEncodingException je vyvolána, když pojmenované schéma kódování není podporováno.

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 ) ; } } 

Výstup:

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