メインコンテンツにスキップ

URLエンコーダー・デコーダー

URLで安全に使用できるように特殊文字をエンコードしたり、エンコードされたURLを元にデコードするツールです。

📝 Input Text

✨ Result

💡 Examples

Original:
https://example.com/search?query=헬로 월드&lang=ko
Encoded:
https%3A%2F%2Fexample.com%2Fsearch%3Fquery%3D%ED%97%AC%EB%A1%9C%20%EC%9B%94%EB%93%9C%26lang%3Dko

URL encoding converts special characters into percent-encoded format for safe transmission in URLs. Use Encode to convert special characters, and Decode to restore the original text.

主な機能

1. URLエンコード(Encode)

特殊文字、日本語、スペースなどをパーセントエンコーディング形式(%XX)に変換します。

例:

元: https://example.com/search?query=こんにちは&lang=ja
エンコード: https%3A%2F%2Fexample.com%2Fsearch%3Fquery%3D%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%26lang%3Dja

2. URLデコード(Decode)

パーセントエンコードされたURLを読みやすい元のテキストに変換します。

例:

エンコード: %E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF
デコード: こんにちは

3. 便利な機能

  • テキスト交換: 入力と結果を素早く交換できます
  • コピー: 結果をクリップボードにコピーします
  • リセット: すべての入力を一度にクリアします

URLエンコーディングが必要な理由

安全なURL送信

URLには特別な意味を持つ文字があります:

  • / : パス区切り文字
  • ? : クエリ開始
  • & : パラメータ区切り文字
  • = : キー・値の区切り文字
  • # : フラグメント

このような文字をデータとして送信するにはエンコーディングが必要です。

日本語および多言語

元: https://example.com/検索?keyword=こんにちは
エンコード: https://example.com/%E6%A4%9C%E7%B4%A2?keyword=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

日本語や特殊文字はURLで直接使用できないため、エンコーディングが必須です。

使用例

Web開発

// JavaScriptでURL生成
const searchQuery = "こんにちは";
const encodedQuery = encodeURIComponent(searchQuery);
const url = `https://api.example.com/search?q=${encodedQuery}`;
// 結果: https://api.example.com/search?q=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

API呼び出し

# 元のURL(動作しない)
GET https://api.example.com/users?name=田中太郎&age=30

# エンコードされたURL(正常動作)
GET https://api.example.com/users?name=%E7%94%B0%E4%B8%AD%E5%A4%AA%E9%83%8E&age=30

クエリパラメータ

# 特殊文字を含む検索語
元: 検索語=C++ & Java
エンコード: 検索語=C%2B%2B%20%26%20Java

エンコードされる文字

常にエンコードされる文字

  • スペース: %20
  • 日本語・漢字: 各文字が複数バイトでエンコード
  • 特殊文字: !, @, #, $, %, ^, &, *, (, ), =, +, [, ], {, } など

!   → %21
@ → %40
# → %23
$ → %24
% → %25
& → %26
= → %3D
+ → %2B
スペース → %20

活用事例

ウェブ開発

  • 検索機能: ユーザー入力をURLクエリに変換
  • API呼び出し: GETリクエストパラメータのエンコード
  • ファイル名: 特殊文字を含むファイル名の処理

メールリンク

<!-- 件名と本文があるmailtoリンク -->
<a href="mailto:test@example.com?subject=こんにちは&body=お問い合わせです">
<!-- エンコード後 -->
<a href="mailto:test@example.com?subject=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF&body=%E3%81%8A%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%E3%81%A7%E3%81%99">

ソーシャルメディア共有

// Facebook共有URL
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fexample.com&quote=%E3%81%84%E3%81%84%E8%A8%98%E4%BA%8B

// Twitter共有URL
https://twitter.com/intent/tweet?text=%E7%B4%A0%E6%99%B4%E3%82%89%E3%81%97%E3%81%84%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9&url=https%3A%2F%2Fexample.com

データ分析

  • ログ分析: Webサーバーログのエンコードされたurlの解釈
  • トラッキングURL: Google Analyticsなどのパラメータ解釈

ヒント

いつエンコードしますか?

  • クエリパラメータの値: ?search=エンコード必要
  • 日本語・特殊文字: name=田中太郎
  • スペース: query=hello world
  • ドメイン: https://(すでに安全な文字)
  • パス区切り文字: /api/users(意図的な区切り文字)

URL全体 vs パラメータのみ

// ❌ 間違った方法: URL全体をエンコード
const wrong = encodeURIComponent("https://example.com/search?q=こんにちは");
// 結果: https%3A%2F%2Fexample.com%2Fsearch%3Fq%3D%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

// ✅ 正しい方法: パラメータ値のみエンコード
const query = encodeURIComponent("こんにちは");
const correct = `https://example.com/search?q=${query}`;
// 結果: https://example.com/search?q=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

二重エンコーディングに注意

元: こんにちは
1次エンコード: %E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF
2次エンコード: %25E3%2581%2593%25E3%2582%2593%25E3%2581%25AB%25E3%2581%25A1%25E3%2581%25AF

// 同じテキストを2回エンコードしてはいけません!

プログラミング言語別の使用方法

JavaScript

// エンコード
const encoded = encodeURIComponent("こんにちは");
// デコード
const decoded = decodeURIComponent(encoded);

Python

from urllib.parse import quote, unquote

# エンコード
encoded = quote("こんにちは")
# デコード
decoded = unquote(encoded)

Java

import java.net.URLEncoder;
import java.net.URLDecoder;

// エンコード
String encoded = URLEncoder.encode("こんにちは", "UTF-8");
// デコード
String decoded = URLDecoder.decode(encoded, "UTF-8");

PHP

// エンコード
$encoded = urlencode("こんにちは");
// デコード
$decoded = urldecode($encoded);

関連ツール

よくある質問

Q: URLのどの部分をエンコードすべきですか? A: クエリパラメータのの部分のみをエンコードしてください。プロトコル(https://)、ドメイン、パス区切り文字(/)はエンコードしません。

Q: スペースが%20+の2つで表示されますが、違いは何ですか? A: %20はURL全体で使用可能で、+はクエリパラメータでのみスペースを表します。一般的には%20を使用する方が安全です。

Q: デコードエラーが発生します。 A: 入力されたテキストが正しいURLエンコード形式でないか、すでにデコードされたテキストの可能性があります。元のエンコードされたURLを再確認してください。

Q: すでにエンコードされたURLを再度エンコードするとどうなりますか? A: 二重エンコーディングが発生し、望ましくない結果になります。例えば%20%2520に変換されます。一度だけエンコードしてください。

💬 このツールは役に立ちましたか?

URLエンコーダー・デコーダーを使用して、Web開発、API呼び出し、データ処理が簡単にできます。フィードバックや改善提案があればお知らせください。

プライバシー保護

このツールは完全にクライアント側で動作します。入力したデータはサーバーに送信されず、ブラウザ内でのみ処理されます。すべての処理はあなたのデバイス上で安全に実行されます。