🔒 入力内容はサーバーに保存していないため、安全にご利用いただけます。
入力もエンコード・デコードも、すべてブラウザ内だけで処理します。
URLエンコードとは(パーセントエンコーディング)
URLエンコードは、URLで使えない文字を安全な形に変換する仕組みです。
日本語・空白・記号などを%E3%81%82 のようなパーセント表記に置き換えます。
たとえば空白は %20、
「あ」は %E3%81%82。
これでリンク切れや文字化けを防げます。
encodeURIComponent と encodeURI の違い
いちばん間違えやすいのが、この2つの違いです。↓
| 関数 | 用途 | コロンやスラッシュ |
|---|---|---|
| encodeURIComponent | クエリの「値」など部品ごと | エンコードする |
| encodeURI | URL全体 | そのまま残す |
クエリの値を入れるときは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開発の地味だけど大事な基礎。
迷ったら上のツールでその場で確認を。
このページをブックマークして
サッと使ってくださいね。
それではまた!













