Instantly convert URL Encode, URL Decode, and Base64 encoding/decoding. Supports multi-language including Chinese, Japanese, and more. Fully browser-based for your privacy.
No payment required, no registration needed, no usage limits. All features are completely free for anyone to use immediately.
Text is converted instantly as you type — no need to click a button and wait, greatly improving developer efficiency.
All encoding and decoding runs entirely in your browser. No data is ever uploaded to any server, keeping your information private.
Full support for URL encoding and decoding of Unicode characters including Chinese, Japanese, Korean, Arabic, and more. Multi-byte characters are handled correctly.
Switch to Base64 mode with one click. Ideal for image data URIs, API authentication tokens, and binary data transfer.
Uses standard encodeURIComponent / decodeURIComponent. Results are fully consistent with browsers and mainstream backend frameworks.
Type the text you want to encode or decode into the left text box. This can be a URL parameter, a string with special characters, or an already-encoded string from an API response. Conversion happens automatically in real time.
Click "Encode" to convert raw text into percent-encoded format, or click "Decode" to convert %XX format back to readable text. You can also switch to Base64 mode.
The right text box instantly shows the converted result. You can view it directly or use it to verify that the encoding is correct.
Click "Copy Result" to copy the converted text with one click, or click the swap button in the middle to move the output back to the input box for reverse operations.
URL encoding, also known as percent-encoding, is a method for converting characters into a URL-safe format. For example, a space becomes %20, and non-ASCII characters like Chinese "你好" are encoded as %E4%BD%A0%E5%A5%BD. This mechanism is defined by RFC 3986 and ensures that URLs remain unambiguous during transmission.
Only a subset of ASCII characters are allowed in URLs. Other characters (such as Chinese, Japanese, and special symbols) as well as reserved characters with special meaning (such as &, =, ?, #) must be encoded to be safely included in a URL. Without encoding, servers may fail to parse parameters correctly, leading to data truncation, security vulnerabilities, and other issues.
The following characters must be encoded: (1) Non-ASCII characters such as Chinese, Japanese, and Korean. (2) Reserved characters: ! * ' ( ) ; : @ & = + $ , / ? # [ ]. (3) Unsafe characters: spaces, double quotes, < >, { }, | \ ^ `. Only English letters (A-Z, a-z), digits (0-9), and the four symbols - _ . ~ do not need encoding.
The three functions differ in scope: escape() is deprecated and does not correctly handle non-ASCII characters. encodeURI() preserves URL structural characters (/ : @ ? # etc.) and is suitable for encoding a complete URL. encodeURIComponent() also encodes URL structural characters and is the strictest and most commonly used option for encoding individual query string parameter values. This tool uses the encodeURIComponent standard.
Base64 is an encoding scheme that converts binary data into 64 printable ASCII characters. It is not part of the URL standard. Base64 is commonly used for email attachments, image data URIs (data:image/png;base64,...), and JWT tokens. URL encoding makes characters safe for transmission in a URL; Base64 represents arbitrary binary data as text. The two serve different purposes.
Non-ASCII characters are first converted to a UTF-8 byte sequence, then each byte is represented as %XX. For example, the Chinese character "中" has the UTF-8 encoding 0xE4 0xB8 0xAD, which becomes %E4%B8%AD after URL encoding. This tool uses JavaScript's native encodeURIComponent, which follows the same standard used by all major browsers and backend frameworks.
All major languages have built-in support: JavaScript uses encodeURIComponent() / decodeURIComponent(); Python uses urllib.parse.quote() / unquote(); PHP uses urlencode() / urldecode() or rawurlencode() / rawurldecode(); Java uses URLEncoder.encode() / URLDecoder.decode(); Go uses url.QueryEscape() / QueryUnescape(). It is recommended to always use the language's built-in functions rather than implementing your own.
Completely safe. All processing in this tool runs in your browser (client-side). The text you enter is never sent to any server, and is never recorded or stored. When you close the browser tab, all input data is immediately gone. You can safely process URL parameters that contain sensitive information.
A deep dive into percent-encoding principles, the RFC 3986 standard, and the complete list of reserved characters.
From theory to practice: understand Base64 padding, use cases, and security considerations.
Query string handling, common mistakes, and code examples in multiple languages. Essential reading for developers.
A complete comparison of three encoding methods to help you use the right encoding in the right context.
More articles on URL encoding techniques and development tutorials.