logo

Java URL Encoder

Java URLEncoder je pomocná trieda používaná na kódovanie adries URL (Uniform Resource Locator). Spoľahlivosť a bezpečnosť sú zaistené pomocou kódovania URL. Keď používateľ požiada o konkrétnu stránku prostredníctvom metódy get, parametre formulára a ich hodnoty sa pridajú za '?' prihláste sa na URL. Problém však nastáva, keď sú v hodnotách použité špeciálne znaky, ktoré nie sú interpretované. Vo všeobecnosti HTML spracováva časť kódovania automaticky spracovaním špeciálnych znakov a ich konverziou na znaky, ktoré sú povolené na bezproblémové spracovanie všetkých operácií. Nepotvrdzuje to však presné kódovanie, preto sa nemôžeme spoliehať iba na funkcie HTML, a preto na explicitné kódovanie URL používame triedu URL Encoder v jazyku Java.

Pri kódovaní reťazca je dôležité dodržiavať dané pravidlá:

  1. Abecedné znaky od „a“ do „z“ alebo od „A“ po „Z“ a číslice od „0“ do „9“ zostávajú rovnaké.
  2. Alfanumerické znaky a niektoré špeciálne znaky, ako napríklad '*', '_', '-' a '.' nemeň.
  3. Všetky medzery sú prevedené na znamienka „+“.
  4. W3C odporúča na účely kódovania použiť „UTF-8“. Všetky ostatné znaky sú zakódované jedným alebo viacerými bajtmi pomocou špecifikovanej kódovacej schémy. Sú konvertované do trojznakového reťazca v tvare %xy, kde xy predstavuje hexadecimálnu reprezentáciu kódovacieho znaku.

Príklad 1:

Ak je požiadavka užívateľa taká, že hodnota parametra obsahuje špeciálne znaky a medzery ako

príkaz git push

u@Java T bod

Ak je použité kódovanie UTF-8, ktoré sa najčastejšie používa, znak „@“ sa skonvertuje na „%40“ a medzery sa skonvertujú na znaky „+“. Zakódovaný reťazec vyzerá takto:

u%40Java+T+Point

java rovná sa metóda

Príklad 2:

Ak je požiadavka užívateľa taká, že hodnota parametra neobsahuje žiadne špeciálne znaky a medzery ako

u@JavaTpoint

Zakódovaný reťazec vyzerá takto:

u%40JavaTPoint

Kódovanie adresy URL

java iterátor pre mapu

Na zakódovanie adresy URL poskytuje trieda Java URLEncoder metódu encode().

URLEncoder.encode( )

Metóda prekladá reťazec do zakódovaného formátu application/x-www-form-url pomocou špecifickej schémy kódovania. Pomocou dodanej schémy kódovania získava bajty pre nebezpečné znaky.

Syntax:

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

Poznámka: World Wide Web Consortium odporúča používať schému kódovania UTF-8. V opačnom prípade to spôsobuje rôzne nekompatibility.

Parametre:

s: Reťazec, ktorý sa má preložiť.

enc: Názov podporovaného kódovania znakov, napríklad „UTF-8“.

Vrátenie: Vráti preložený reťazec.

Hody: Výnimka UnsupportedEncodingException sa vyvolá, keď pomenovaná schéma kódovania nie je podporovaná.

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ýkon:

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