UrlEncode Tutorial
UrlEncode is a URL encoding and decoding utility class that provides methods for encoding and decoding URLs, handling Chinese characters in URLs, and parsing query strings into Maps.
Main Features
- URL Encoding and Decoding: Supports different encoding strategies and charset specifications
- Chinese Character Handling: Special handling for Chinese characters in URLs
- Query String Parsing: Converts strings in
xxx=xxx&xxx=xxxformat to Map - Multiple Encoding Modes: Supports regular encoding, GET request optimized encoding, and safe encoding
Basic Usage
1. Creating Instances
// Create instance with default UTF-8 charset
UrlEncode encoder = new UrlEncode("Hello World");
// Create instance with specified charset
UrlEncode encoder = new UrlEncode("Hello World", StandardCharsets.UTF_8);
2. URL Encoding
// Basic URL encoding
String encoded = new UrlEncode("Hello World").encode();
// Output: Hello+World
// GET request optimized encoding (replaces + with %20)
String queryEncoded = new UrlEncode("Hello World").encodeQuery();
// Output: Hello%20World
// Safe encoding (handles special characters)
String safeEncoded = new UrlEncode("Hello*World~Test").encodeSafe();
// Output: Hello%2AWorld%7ETest
3. URL Decoding
// URL decoding
String decoded = new UrlEncode("Hello%20World").decode();
// Output: Hello World
4. Chainable Calls
Thanks to the @Accessors(chain = true) annotation, chainable calls are supported:
String result = new UrlEncode("Hello World")
.setCharset(StandardCharsets.UTF_8)
.encodeQuery();
Static Utility Methods
1. Chinese Character Processing
// Handle Chinese characters in URLs
String chineseStr = "你好世界";
String processed = UrlEncode.urlChinese(chineseStr);
2. Query String to Map Conversion
// Convert query string to Map
String queryString = "name=张三&age=25&city=北京";
Map<String, String> paramMap = UrlEncode.parseStringToMap(queryString);
// Result:
// name -> 张三
// age -> 25
// city -> 北京
Notes
encodeSafemethod has issues in unit tests and needs fixing- If Tomcat filter already sets UTF-8, the
urlChinesemethod may not need repeated transcoding - All encoding and decoding operations support custom charsets