Java URLEncoder е помощен клас, използван за кодиране на URL адреси (Uniform Resource Locator). Надеждността и сигурността се гарантират чрез кодиране на URL. Когато потребителят поиска определен сайт чрез метода get, параметрите на формата и техните стойности се добавят след '?' влезте в URL адреса. Проблемът обаче възниква, когато в стойностите, които не се интерпретират, се използват специални знаци. Като цяло HTML обработва частта за кодиране автоматично, като обработва специалните знаци и ги преобразува в знаците, които са разрешени за безпроблемна обработка на всички операции. Това обаче не потвърждава точното кодиране, поради което не можем да разчитаме единствено на функциите на HTML и по този начин, за да кодираме изрично URL адресите, използваме класа URL енкодер на Java.
Важно е да следвате дадените правила, докато кодирате низ:
- Буквите от 'a' до 'z' или от 'A' до 'Z' и цифрите от '0' до '9' остават същите.
- Буквено-цифровите знаци и някои специални знаци като '*', '_', '-' и '.' не се променят.
- Всички интервали се преобразуват в знаци '+'.
- W3C препоръчва използването на 'UTF-8' за целите на кодирането. Всички останали знаци са кодирани с един или повече байта, като се използва указаната схема за кодиране. Те се преобразуват в низ от три знака под формата %xy, където xy представлява шестнадесетичното представяне на кодиращия знак.
Пример 1:
Ако потребителската заявка е такава, че стойността на параметъра съдържа специални знаци и интервали като
if else в bash shell
u@Java T точка
Ако използваното кодиране е UTF-8, което се използва най-често, знакът „@“ ще бъде преобразуван в „%40“, а интервалите ще бъдат преобразувани в знаци „+“. Кодираният низ изглежда по следния начин:
u%40Java+T+Point
Пример 2:
Ако потребителската заявка е такава, че стойността на параметъра не съдържа специални знаци и интервали като
u@JavaTpoint
cpld срещу FPGA
Кодираният низ изглежда по следния начин:
u%40JavaTPoint
Кодиране на URL
За да кодирате URL адрес Java класът URLEncoder предоставя метода encode().
двоичен алгоритъм за търсене
URLEncoder.encode()
Методът преобразува низ в кодиран формат application/x-www-form-url, използвайки специфична схема за кодиране. Той получава байтовете за опасни знаци, като използва предоставената схема за кодиране.
Синтаксис:
public static String encode(String s, String enc) throws UnsupportedEncodingException
Забележка: World Wide Web Consortium препоръчва да се използва схемата за кодиране UTF-8. В противен случай това причинява различни несъвместимости.
Параметри:
с: Низът за превод.
enc: Името на поддържаното кодиране на знаци, като например „UTF-8“.
java чете csv файл
Се завръща: Връща преведения низ.
Хвърляния: UnsupportedEncodingException се хвърля, когато посочената схема за кодиране не се поддържа.
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 ) ; } }
Изход:
URL without any encoding: https://www.javatpoint.com/ u@ java T point URL after encoding: https://www.javatpoint.com/+u%40+java+T+point