TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #386 4.17K
📌 Что означает URL encoding, как это осуществить ?

💬 Спросят с вероятностью 6%

URL encoding (кодирование URL), также известное как percent encoding, это процесс преобразования символов в URL в формат, который может быть передан через интернет. Это необходимо, потому что URL могут содержать только определенный набор символов (ASCII), и некоторые символы имеют специальное значение в URL (например, ?, &, #). URL encoding заменяет небезопасные символы на их процент-кодированные эквиваленты.

Основные моменты:

1️⃣ Символы, подлежащие кодированию:

➕ Символы, которые не входят в набор безопасных символов ASCII: пробелы, специальные символы, такие как &, ?, /, и не-ASCII символы.

➕ Пробелы кодируются как %20 или +.

➕ Специальные символы заменяются на их шестнадцатеричные представления, предшествуемые знаком процента (%).

2️⃣ Примеры кодирования:

➕ Пробел ( ) → %20 или +

➕ Символ амперсанда (&) → %26

➕ Символ вопросительного знака (?) → %3F

➕ Символ решетки (#) → %23

Пример URL encoding

Вручную:
Оригинальный URL: https://www.example.com/search?query=hello world&category=books
Закодированный URL: https://www.example.com/search?query=hello%20world&category=books


Осуществление URL encoding

Предоставляет классы и методы для выполнения URL encoding. Наиболее часто используемые из них - это URLEncoder и URLDecoder.

Использование класса URLEncoder

Используется для кодирования URL-строк.
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class UrlEncodingExample {
public static void main(String[] args) {
try {
String originalUrl = "https://www.example.com/search?query=hello world&category=books";
String query = "hello world";
String category = "books";

// Кодирование параметров запроса
String encodedQuery = URLEncoder.encode(query, "UTF-8");
String encodedCategory = URLEncoder.encode(category, "UTF-8");

// Формирование закодированного URL
String encodedUrl = "https://www.example.com/search?query=" + encodedQuery + "&category=" + encodedCategory;
System.out.println("Закодированный URL: " + encodedUrl);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}


Использование класса URLDecoder

Используется для декодирования URL-строк.
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

public class UrlDecodingExample {
public static void main(String[] args) {
try {
String encodedUrl = "https://www.example.com/search?query=hello%20world&category=books";

// Извлечение и декодирование параметров запроса
String encodedQuery = "hello%20world";
String encodedCategory = "books";

String decodedQuery = URLDecoder.decode(encodedQuery, "UTF-8");
String decodedCategory = URLDecoder.decode(encodedCategory, "UTF-8");

System.out.println("Декодированный query: " + decodedQuery);
System.out.println("Декодированная category: " + decodedCategory);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}


Важные моменты

1️⃣ Кодировка:

➕ Убедитесь, что используете правильную кодировку (обычно UTF-8), чтобы избежать проблем с несовместимостью символов.

2️⃣ Кодирование только параметров:

➕ Кодируйте только значения параметров, а не весь URL. Например, в https://www.example.com/search?query=hello world, кодируйте только hello world.

URL encoding используется для преобразования специальных символов в URL в безопасный для передачи формат. Это можно сделать с помощью классов URLEncoder и URLDecoder. Кодирование необходимо для правильной передачи данных через URL и предотвращения проблем с интерпретацией символов на сервере.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
  • 👍 6
  • 🔥 2
  • ❤ 1
More from @easy_java_ru
  1. Oct 11, 2026🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но…
  2. Oct 10, 2026🤔 На основании какой структуры данных реализован ArrayList? ArrayList реализован на базе…
  3. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
  4. Oct 9, 2026🤔 В чём различие между LeftJoin , RightJoin и InnerJoin? LEFT JOIN, RIGHT JOIN и INNER JO…
  5. Oct 8, 2026🤔 Что такое поток "демон"? Демон-поток — это поток, который: - Работает на фоне (например…
  6. Oct 7, 2026🤔 Может ли Entity-класс быть абстрактным? Да, Entity может быть абстрактным, если он служ…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →