ツール

URLエンコード・デコード【リアルタイム変換】コード解説付

🔒 入力内容はサーバーに保存していないため、安全にご利用いただけます。

入力もエンコード・デコードも、すべてブラウザ内だけで処理します。

URLエンコードとは(パーセントエンコーディング)

URLエンコードは、URLで使えない文字を安全な形に変換する仕組みです。
日本語・空白・記号などを
%E3%81%82 のようなパーセント表記に置き換えます。

たとえば空白は %20
「あ」は %E3%81%82
これでリンク切れや文字化けを防げます。

encodeURIComponent と encodeURI の違い

いちばん間違えやすいのが、この2つの違いです。↓

関数用途コロンやスラッシュ
encodeURIComponentクエリの「値」など部品ごとエンコードする
encodeURIURL全体そのまま残す

クエリの値を入れるときはencodeURIComponent
URL全体をまとめて処理したいときだけ
encodeURI、と覚えると迷いません。

「+」と「%20」の違い(フォーム方式)

空白は、方式によって表現が変わります。
URLのパスやクエリでは %20
フォーム送信(x-www-form-urlencoded)では + です。

上のツールでは「フォーム(+)」を選ぶと、
空白を + に、デコード時は + を空白に戻せます。

各言語でのURLエンコード

JavaScript

encodeURIComponent('cron 入門')                    // "cron%20%E5%85%A5%E9%96%80"
decodeURIComponent('cron%20%E5%85%A5%E9%96%80')    // "cron 入門"

Python

from urllib.parse import quote, unquote

quote('cron 入門')     # 'cron%20%E5%85%A5%E9%96%80'
unquote('cron%20%E5%85%A5%E9%96%80')   # 'cron 入門'

Java

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

URLEncoder.encode("cron 入門", "UTF-8");   // 空白は + (フォーム方式)
URLDecoder.decode(encoded, "UTF-8");

PHP

rawurlencode('cron 入門');   // 空白は %20(コンポーネント相当)
urlencode('cron 入門');      // 空白は +(フォーム相当)

よくある間違い

二重エンコードしてしまう(%が%25になる)
クエリ値にencodeURIを使い記号を残しすぎる
+ と %20を取り違える
デコード時に壊れた %XXでエラーになる
文字コードがUTF-8以外で文字化けする

よくある質問

encodeURIComponentとencodeURI、どちらを使う?

クエリの「値」など部品ならencodeURIComponent
URL全体をまとめて処理するときだけencodeURIです。

空白が + になったり %20 になったりするのはなぜ?

フォーム送信では+
URLのパスやクエリでは%20が使われるためです。
用途に合わせて選びましょう。

入力した文字列は送信されますか?

送信されません
エンコードもデコードも、
すべてブラウザ内で処理し、保存もしていません。

日本語や絵文字も変換できますか?

はい。UTF-8として正しくエンコード・デコードします。
日本語も記号も、そのまま変換できます。

URLエンコードは、Web開発の地味だけど大事な基礎。
迷ったら上のツールでその場で確認を。
このページをブックマークして
サッと使ってくださいね。
それではまた!