A simple defensive library to encode/decode URL components.
https://github.com/ethauvin/urlencoder
.idea | ||
gradle/wrapper | ||
lib | ||
.gitattributes | ||
.gitignore | ||
gradlew | ||
gradlew.bat | ||
LICENSE.txt | ||
README.md | ||
settings.gradle.kts |
URL Encoder for Kotlin and Java
A simple library to encode/decode URL parameters.
For decades we've been using java.net.URLEncoder because of its improper naming. It is actually intended to encode HTML form parameters, not URLs.
Android's Uri.encode also addresses this issue.
Examples (TL;DR)
UrlEncoder.encode("%#okékÉȢ smile!😁") // -> %25%23ok%C3%A9k%C3%89%C8%A2%20smile%21%F0%9F%98%81
UrlEncoder.encode("?test=a test", '=', '?') // -> ?test=a%20test
UrlEncoder.decode("%25%23ok%C3%A9k%C3%89%C8%A2%20smile%21%F0%9F%98%81") // -> %#okékÉȢ smile!😁
Gradle, Maven, etc.
To use with Gradle, include the following dependency in your build file:
repositories {
mavenCentral()
maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") }
}
dependencies {
implementation("net.thauvin.erik:urlencoder:0.9-SNAPSHOT")
}
Instructions for using with Maven, Ivy, etc. can be found on Maven Central.