Learnitweb

How do you decode or encode a URL in JavaScript?

In JavaScript, you can use the encodeURIComponent, encodeURI, decodeURIComponent, and decodeURI functions to encode or decode URLs or their components.

1. Encoding a URL

Use encodeURI or encodeURIComponent to encode URLs or parts of them.

  • encodeURI: Encodes a full URL, leaving special characters like :, /, ?, &, and = intact.
  • encodeURIComponent: Encodes individual components of a URL, including all special characters.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// Example of encodeURI
const url = "https://example.com/page?name=John Doe&age=30";
const encodedURL = encodeURI(url);
console.log(encodedURL);
// Output: https://example.com/page?name=John%20Doe&age=30
// Example of encodeURIComponent
const queryParam = "John Doe";
const encodedParam = encodeURIComponent(queryParam);
console.log(encodedParam);
// Output: John%20Doe
// Example of encodeURI const url = "https://example.com/page?name=John Doe&age=30"; const encodedURL = encodeURI(url); console.log(encodedURL); // Output: https://example.com/page?name=John%20Doe&age=30 // Example of encodeURIComponent const queryParam = "John Doe"; const encodedParam = encodeURIComponent(queryParam); console.log(encodedParam); // Output: John%20Doe
// Example of encodeURI
const url = "https://example.com/page?name=John Doe&age=30";
const encodedURL = encodeURI(url);
console.log(encodedURL); 
// Output: https://example.com/page?name=John%20Doe&age=30

// Example of encodeURIComponent
const queryParam = "John Doe";
const encodedParam = encodeURIComponent(queryParam);
console.log(encodedParam);
// Output: John%20Doe

2. Decoding a URL

Use decodeURI or decodeURIComponent to decode previously encoded URLs or components.

  • decodeURI: Decodes a full URL that was encoded using encodeURI.
  • decodeURIComponent: Decodes a URL component that was encoded using encodeURIComponent.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// Example of decodeURI
const encodedURL = "https://example.com/page?name=John%20Doe&age=30";
const decodedURL = decodeURI(encodedURL);
console.log(decodedURL);
// Output: https://example.com/page?name=John Doe&age=30
// Example of decodeURIComponent
const encodedParam = "John%20Doe";
const decodedParam = decodeURIComponent(encodedParam);
console.log(decodedParam);
// Output: John Doe
// Example of decodeURI const encodedURL = "https://example.com/page?name=John%20Doe&age=30"; const decodedURL = decodeURI(encodedURL); console.log(decodedURL); // Output: https://example.com/page?name=John Doe&age=30 // Example of decodeURIComponent const encodedParam = "John%20Doe"; const decodedParam = decodeURIComponent(encodedParam); console.log(decodedParam); // Output: John Doe
// Example of decodeURI
const encodedURL = "https://example.com/page?name=John%20Doe&age=30";
const decodedURL = decodeURI(encodedURL);
console.log(decodedURL); 
// Output: https://example.com/page?name=John Doe&age=30

// Example of decodeURIComponent
const encodedParam = "John%20Doe";
const decodedParam = decodeURIComponent(encodedParam);
console.log(decodedParam);
// Output: John Doe

3. Key Differences Between encodeURI and encodeURIComponent

FunctionUse CaseEncodes Special Characters Like :, /, ?, &, =
encodeURIFull URL (leaves URL syntax characters)No
encodeURIComponentURL components (encodes everything)Yes

4. Example: Building a Query String

When constructing a query string for a URL, you can encode each parameter using encodeURIComponent:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const baseURL = "https://example.com/search";
const params = {
query: "JavaScript tips",
page: 2,
sort: "relevance"
};
// Construct query string
const queryString = Object.keys(params)
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
.join("&");
const fullURL = `${baseURL}?${queryString}`;
console.log(fullURL);
// Output: https://example.com/search?query=JavaScript%20tips&page=2&sort=relevance
const baseURL = "https://example.com/search"; const params = { query: "JavaScript tips", page: 2, sort: "relevance" }; // Construct query string const queryString = Object.keys(params) .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`) .join("&"); const fullURL = `${baseURL}?${queryString}`; console.log(fullURL); // Output: https://example.com/search?query=JavaScript%20tips&page=2&sort=relevance
const baseURL = "https://example.com/search";
const params = {
  query: "JavaScript tips",
  page: 2,
  sort: "relevance"
};

// Construct query string
const queryString = Object.keys(params)
  .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
  .join("&");

const fullURL = `${baseURL}?${queryString}`;
console.log(fullURL);
// Output: https://example.com/search?query=JavaScript%20tips&page=2&sort=relevance