Skip to content
URLエンコード / デコード
Tools

URLエンコード / デコード

新着

テキストをパーセントエンコード・デコードし、クエリ文字列も解析。すべてブラウザ上で。

Special characters reference
Character Encoded (%XX) Notes
space %20 Also encoded as + in HTML form query strings
& %26 Query param separator — encode in values
= %3D Key-value separator in query strings
? %3F Marks the start of a query string
# %23 Fragment identifier
/ %2F Path separator
: %3A Protocol / port separator
@ %40 Username delimiter in URLs
+ %2B Literal plus sign (+ in query string = space)
% %25 Percent itself — encode to avoid ambiguity
%E2%82%AC UTF-8 multi-byte (3 bytes)
© %C2%A9 UTF-8 multi-byte (2 bytes)
Per-language code snippets

Copy-ready snippets for JavaScript, Python, C#, PowerShell, Java and Go.

JavaScript / Node.js
// Encode a single query value (recommended)
const encoded = encodeURIComponent('hello world & co.');
// → 'hello%20world%20%26%20co.'

// Decode
const decoded = decodeURIComponent('hello%20world%20%26%20co.');
// → 'hello world & co.'

// Encode a full URL (leaves : / ? & # intact)
const safeUrl = encodeURI('https://example.com/search?q=hello world');
// → 'https://example.com/search?q=hello%20world'
Python
from urllib.parse import quote, unquote, urlencode

# Encode a single value (%20 for spaces)
encoded = quote('hello world & co.')
# → 'hello%20world%20%26%20co.'

# Decode
decoded = unquote('hello%20world%20%26%20co.')
# → 'hello world & co.'

# Encode a query dict (uses + for spaces — form encoding)
qs = urlencode({'q': 'hello world', 'page': '2'})
# → 'q=hello+world&page=2'

# quote_plus encodes spaces as + (match HTML form encoding)
plus = quote_plus('hello world')
# → 'hello+world'
C# / .NET
// Encode a single value (spaces → %20)
string encoded = Uri.EscapeDataString("hello world & co.");
// → "hello%20world%20%26%20co."

// Decode
string decoded = Uri.UnescapeDataString("hello%20world%20%26%20co.");
// → "hello world & co."

// Older System.Web API (spaces → +, form encoding):
// HttpUtility.UrlEncode("hello world") → "hello+world"
PowerShell
# .NET method — works in PS 5+ and PowerShell Core
$encoded = [Uri]::EscapeDataString('hello world & co.')
# → 'hello%20world%20%26%20co.'

$decoded = [Uri]::UnescapeDataString('hello%20world%20%26%20co.')
# → 'hello world & co.'

# Alternate via System.Web (Desktop PS only):
Add-Type -AssemblyName System.Web
$enc2 = [System.Web.HttpUtility]::UrlEncode('hello world')
# → 'hello+world'
Java
import java.net.URLEncoder;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// Encode (URLEncoder uses + for spaces — form encoding)
String encoded = URLEncoder.encode("hello world & co.", StandardCharsets.UTF_8);
// → "hello+world+%26+co."

// Decode
String decoded = URLDecoder.decode("hello+world+%26+co.", StandardCharsets.UTF_8);
// → "hello world & co."
Go
import "net/url"

// QueryEscape: spaces become +
encoded := url.QueryEscape("hello world & co.")
// → "hello+world+%26+co."

decoded, err := url.QueryUnescape("hello+world+%26+co.")
// → "hello world & co.", nil

// PathEscape: spaces become %20
pathSafe := url.PathEscape("hello world & co.")
// → "hello%20world%20&%20co."

Runs entirely in your browser. Nothing is uploaded.

無料オンライン URL エンコーダー・デコーダー

この URL エンコーダー・デコーダーは、テキストをパーセントエンコード形式に変換——またはその逆——をブラウザ上で直接行います。テキストを貼り付け、エンコードまたはデコードを選択し、コンポーネントまたは完全 URI ルールを選ぶと、結果がリアルタイムで更新されます。何もアップロードされません。すべての処理は、あなたのコードが使うものと同じブラウザ内蔵 JavaScript 関数を使ってブラウザ内で完全に完結します。

パーセントエンコーディングは Web 開発において避けられないものです。スペース、アンパサンド、等号、非 ASCII 文字はすべて、URL に安全に含めるためエスケープが必要です。API リクエストの構築、トラッキングリンクのデバッグ、サーバーログの確認など、あらゆるケースでこのツールがマルチバイト UTF-8 文字、不正なシーケンス、+%20 のスペース表記の違いを含めた边界ケースをすべて処理します。

encodeURIComponent と encodeURI——どちらのルールを使うべき?

encodeURIComponent は、個別のクエリ値、パスセグメント、または URL に挿入する文字列に適した選択です。?&=/#: など、ほぼすべての特殊文字をエンコードするため、値が URL 構造を壊す心配がありません。例:'hello world & page=2''hello%20world%20%26%20page%3D2' になります。

encodeURI は、完全な URL を壊さずにエンコードするために設計されています。構造文字(: / ? # &)はそのままにして URL の動作を維持しながら、スペースや非 ASCII 文字をエンコードします。迷ったときは、値として挿入するものにはコンポーネントルールを使うのが安全です——ほぼすべての Web フレームワークにおける標準的な選択です。

スペースは %20 と + どちら?——フォームエンコーディングの違い

URL におけるスペースの有効なエンコード方法は2つあります。URL パス? より前の部分)では、RFC 3986 により %20 が必要です。HTML フォームのクエリ文字列では、古い application/x-www-form-urlencoded 形式が歴史的な簡潔さのためスペースを + でエンコードします——GET でフォームを送信する際、ブラウザは今もこの形式を使います。

どちらも「スペース」を意味しますが、それぞれのコンテキストでのみ有効です。URL パスの + はリテラルのプラス記号、クエリ文字列の + はスペースです。クエリ値のリテラルプラスは %2B としてエンコードしなければ誤って解釈されます。デコードモードの+ をスペースとして扱うトグルは、decodeURIComponent 実行前に + をスペースに置換することでフォームエンコードされた入力に対応します。

CyberChef や他の URL エンコードツールとの比較

CyberChef(GCHQ 製)は強力ですが、「レシピ」パイプラインの概念で設計されており、複数の操作を連結するものです。URL エンコード・デコードのみの用途でも、操作を検索してレシピにドラッグし、入力を処理するという手順が必要です。複雑な変換には優れていますが、素早いエンコード・デコードには手間がかかりすぎます。

urldecoder.org などの他のオンラインツールはシンプルですが、広告が表示され、操作のたびにページ全体の再読み込みが必要で、言語別のコードスニペットもありません。このツールはキーを押すたびに即座に結果を更新し、コンポーネントと完全 URI の両ルールに対応し、よく使う文字のエンコード参照表を含み、JavaScript、Python、C#、PowerShell、Java、Go のコピー可能なコードを表示します——すべてアップロードなしで。

特殊文字クイックリファレンス

Web 開発で最もよくエンコードされる文字:スペース → %20(クエリ文字列では +)、& → %26= → %3D? → %3F# → %23/ → %2F: → %3A@ → %40+ → %2B% → %25。マルチバイト UTF-8 文字は複数のシーケンスに展開されます:€ → %E2%82%ACé → %C3%A9

絶対にエンコードされない文字は非予約文字セットです:A–Z と a–z の英字、0–9 の数字、および4つの記号 - _ . ~。それ以外のすべて——すべての非 ASCII 文字を含む——は、標準準拠の URL においてパーセントエンコードが必要です。

JavaScript、Python、C#、PowerShell、Java での URL エンコード

主要な言語にはすべて組み込み関数があります。JavaScript / Node.jsencodeURIComponent(str)decodeURIComponent(str)——インポート不要。Pythonurllib.parse.quote(str)unquote(str);完全なクエリ文字列には urlencode(dict)C#:System 名前空間の Uri.EscapeDataString(str)Uri.UnescapeDataString(str)PowerShell[Uri]::EscapeDataString(str)(PS 5+ および PowerShell Core 対応)。JavaURLEncoder.encode(str, StandardCharsets.UTF_8)

言語別スニペットパネルには JavaScript、Python、C#、PowerShell、Java、Go のコピー可能なコードが含まれており、すぐにプロジェクトに正しい呼び出しを追加できます——各言語の標準ライブラリにおける +%20 のスペース動作の説明付きです。

完全プライベート——オフラインでも動作

すべてのエンコード・デコード操作は、ブラウザ内蔵の encodeURIComponentdecodeURIComponentencodeURIdecodeURI 関数のみを使用します。貼り付けた URL 内のドメイン名を含め、いかなるテキストもサーバーに送信・保存・ログ記録されることはありません。ページが一度読み込まれれば、オフラインにしても完全に動作し続けます。ブックマークしておけば、URL のエンコード・デコード・確認が必要なときにいつでも利用できます。

Frequently asked questions

URL エンコードとは何ですか?

URL エンコード(パーセントエンコーディングとも呼ばれます)は、URL で安全でない文字を % 記号と2桁の16進数に変換します。たとえば、スペースは %20、アンパサンドは %26、ハッシュは %23 になります。これにより、文字セットに関わらず、あらゆるブラウザ、HTTP ヘッダー、サーバーで URL が有効に機能します。

URL エンコードの %20 は何を意味しますか?

%20 はスペース文字のパーセントエンコード表現です。20 は ASCII 32(スペース)の16進数値です。よって URL 'hello%20world' は 'hello world' にデコードされます。HTML フォームのクエリ文字列では、スペースに %20 の代わりに + が使われることがあります——クエリ文字列では同じ意味ですが、URL パスでは異なります。

encodeURI と encodeURIComponent の違いは何ですか?

encodeURIComponent は個別のクエリ値やパスセグメント向けで、: / ? # & = を含むほぼすべてをエンコードし、値が URL 構造を壊さないようにします。encodeURI は完全な URL 向けで、: / ? & # などの構造文字はそのままにして URL を機能させ続けます。原則として、リンクに挿入する個別の値には常に encodeURIComponent を使いましょう。

JavaScript で URL エンコードするにはどうすればいいですか?

個別の値には encodeURIComponent() を使います:encodeURIComponent('hello world & co.') は 'hello%20world%20%26%20co.' を返します。逆変換には decodeURIComponent()。完全な URL には encodeURI() / decodeURI()——構造文字をスキップします。どちらもすべてのブラウザと Node.js に組み込まれており、インポート不要です。

日本語の文字を URL エンコードするとどうなりますか?

日本語などの非 ASCII 文字は UTF-8 で複数の %XX シーケンスにエンコードされます。たとえば「日本語」という文字列は UTF-8 で各文字が3バイトになるため、URL エンコードすると %E6%97%A5%E6%9C%AC%E8%AA%9E になります。encodeURIComponent() が自動的にこの変換を処理するので、元の文字列をそのまま渡すだけで大丈夫です。

スペースが %20 のときと + のときがあるのはなぜですか?

URL パス(? より前)では RFC 3986 により %20 が必要です。クエリ文字列では、HTML フォームが使う古い application/x-www-form-urlencoded 形式が歴史的な簡潔さからスペースを + でエンコードします。どちらも「スペース」を意味しますが、各コンテキストでのみ有効です——クエリ値のリテラル + は %2B とエンコードしなければスペースとして誤解されます。

オンラインでエンコード・デコードしても安全ですか?

はい——このツールは100%ローカルです。すべての操作はブラウザ内蔵の JavaScript 関数を使ってブラウザ内で実行されます。テキストはいかなるサーバーにも送信・保存・ログ記録されません。ページ読み込み後はオフラインでも動作します。API キー、認証情報、トークンをエンコードする際は特に重要なポイントです。