Java URLEncoder — це службовий клас, який використовується для кодування URL-адрес (уніфікований покажчик ресурсів). Надійність і безпека забезпечується за допомогою кодування URL-адреси. Коли користувач запитує певний сайт за допомогою методу get, параметри форми та їхні значення додаються після «?» увійдіть в URL-адресу. Однак проблема виникає, коли в значеннях, які не інтерпретуються, використовуються спеціальні символи. Як правило, HTML обробляє частину кодування автоматично, обробляючи спеціальні символи та перетворюючи їх на символи, дозволені для плавної обробки всіх операцій. Однак це не підтверджує точне кодування, тому ми не можемо покладатися виключно на функції HTML, тому для явного кодування URL-адрес ми використовуємо клас URL-кодувальника Java.
Під час кодування рядка важливо дотримуватися наведених правил:
- Літери від «a» до «z» або від «A» до «Z» і цифри від «0» до «9» залишаються незмінними.
- Алфавітно-цифрові символи та деякі спеціальні символи, такі як «*», «_», «-» і «.» не змінювати.
- Усі пробіли перетворюються на знаки «+».
- W3C рекомендує використовувати «UTF-8» для цілей кодування. Усі інші символи кодуються одним або декількома байтами за допомогою вказаної схеми кодування. Вони перетворюються в трисимвольний рядок у формі %xy, де xy представляє шістнадцяткове представлення символу кодування.
приклад 1:
Якщо запит користувача такий, що значення параметра містить спеціальні символи та пробіли, як
купа і сортування купи
u@Java T точка
Якщо використовується кодування UTF-8, яке використовується найчастіше, знак «@» буде перетворено на «%40», а пробіли — на знаки «+». Закодований рядок виглядає так:
u%40Java+T+Point
приклад 2:
Якщо запит користувача такий, що значення параметра не містить спеціальних символів і пробілів, як
u@JavaTpoint
веб-сайти з фільмами, схожі на 123movies
Закодований рядок виглядає так:
u%40JavaTPoint
Кодування URL
Щоб закодувати URL-адресу, клас Java URLEncoder надає метод encode().
винятки java
URLEncoder.encode()
Метод переводить рядок у закодований формат application/x-www-form-url за допомогою спеціальної схеми кодування. Він отримує байти для небезпечних символів за допомогою наданої схеми кодування.
Синтаксис:
public static String encode(String s, String enc) throws UnsupportedEncodingException
Примітка. Консорціум World Wide Web рекомендує використовувати схему кодування UTF-8. В іншому випадку це викликає різні несумісності.
Параметри:
s: Рядок для перекладу.
enc: Назва підтримуваного кодування символів, наприклад 'UTF-8'.
сортувати купу
Повернення: Він повертає перекладений рядок.
Кидки: 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