Java URLEncoder je pomožni razred, ki se uporablja za kodiranje URL-jev (Uniform Resource Locator). Zanesljivost in varnost sta zagotovljeni s kodiranjem URL-ja. Ko uporabnik zahteva določeno spletno mesto prek metode get, se parametri obrazca in njihove vrednosti dodajo za '?' prijavite se v URL. Težava pa nastane, ko so v vrednostih, ki niso interpretirane, uporabljeni posebni znaki. Na splošno HTML samodejno obravnava del kodiranja z obdelavo posebnih znakov in njihovo pretvorbo v znake, ki so dovoljeni za gladko upravljanje vseh operacij. Vendar pa ne potrjuje natančnega kodiranja, zato se ne moremo zanašati samo na funkcije HTML, zato za izrecno kodiranje URL-jev uporabljamo razred URL Encoder v Javi.
Pri kodiranju niza je pomembno upoštevati dana pravila:
- Abecedni znaki od 'a' do 'z' ali od 'A' do 'Z' in številke od '0' do '9' ostanejo enake.
- Alfanumerični znaki in nekateri posebni znaki, kot so '*', '_', '-' in '.' ne spremeniti.
- Vsi presledki so pretvorjeni v znake '+'.
- W3C priporoča uporabo 'UTF-8' za namene kodiranja. Vsi drugi znaki so kodirani z enim ali več bajti z uporabo navedene sheme kodiranja. Pretvorjeni so v trimestni niz v obliki %xy, kjer xy predstavlja šestnajstiško predstavitev kodirnega znaka.
Primer 1:
Če je zahteva uporabnika takšna, da vrednost parametra vsebuje posebne znake in presledke kot
java 8
u@Java T točka
Če je uporabljeno kodiranje UTF-8, ki se najpogosteje uporablja, bo znak '@' pretvorjen v '%40', presledki pa v znake '+'. Kodirani niz je videti takole:
u%40Java+T+Point
Primer 2:
Če je zahteva uporabnika takšna, da vrednost parametra ne vsebuje posebnih znakov in presledkov, npr
je enako metoda java
u@JavaTpoint
Kodirani niz je videti takole:
u%40JavaTPoint
abstraktni razred java
Kodiranje URL-ja
Za kodiranje URL-ja Java razred URLEncoder ponuja metodo encode().
URLEncoder.encode()
Metoda prevede niz v kodirano obliko application/x-www-form-url z uporabo posebne sheme kodiranja. Pridobi bajte za nevarne znake z uporabo priložene sheme kodiranja.
Sintaksa:
public static String encode(String s, String enc) throws UnsupportedEncodingException
Opomba: World Wide Web Consortium priporoča uporabo sheme kodiranja UTF-8. V nasprotnem primeru povzroča različne nekompatibilnosti.
Parametri:
s: Niz, ki ga je treba prevesti.
program python za binarno iskanje
enc: Ime podprtega kodiranja znakov, kot je 'UTF-8'.
Vrne: Vrne prevedeni niz.
Meti: UnsupportedEncodingException se vrže, ko imenovana shema kodiranja ni podprta.
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 ) ; } }
Izhod:
URL without any encoding: https://www.javatpoint.com/ u@ java T point URL after encoding: https://www.javatpoint.com/+u%40+java+T+point