URLエンコーダー&デコーダー
テキストをURLセーフなエンコード(パーセントエンコーディング)に変換したり、その逆を行ったりします。クエリ文字列、リダイレクト、OAuthフローに役立ちます。
URLエンコーディングとは何か、そしてどんなときに必要か?
URLエンコーディング(「パーセントエンコーディング」とも呼ばれ、RFC 3986で規定されています)とは、URL内で特別な意味を持つ文字、あるいはそもそもURLでは安全でない文字を、16進数のエスケープシーケンス「%XX」に変換する処理のことです。URL仕様では、構造上の意味を持つ特定の文字が予約されています。「?」はクエリ文字列を開始し、「#」はフラグメントを開始し、「&」はクエリパラメータを区切り、「/」はパスのセグメントを区切る、といった具合です。ユーザー入力にこれらの文字が含まれていて、それをそのままURLに埋め込むと、パーサーが誤って解釈してしまいます。URLエンコーディングは、予約文字や安全でない文字を、それぞれ「%」を先頭に付けたバイトの16進数表現に置き換えることで、これを防ぎます。スペースは%20に、「&」は%26に、「=」は%3Dになります。非ASCII文字(キリル文字、中国語、絵文字)はマルチバイトのUTF-8シーケンスに変換され、各バイトがパーセントエンコードされます。リンクをクリックしたときはブラウザが自動的に処理してくれますが、コードでURLを構築するとき、すなわち検索クエリ、リダイレクト先、OAuthのコールバック、Webhookの署名などを作成するときには、ユーザーから提供された値を必ず先にエンコードする必要があります。このツールは、あなたのJavaScriptコードが使うのと同じencodeURIComponent / decodeURIComponent関数を使用しているため、動作は本番環境と完全に一致します。
よくある活用例
検索URLに追加する前に、ユーザーの検索語をエンコードする(?q=ユーザー+入力)。
OAuthのredirect_uriパラメータを認可サーバーへ安全に渡す。
クエリ文字列にエンコードされたJSONペイロードを含むWebhook URLを構築する。
「returnTo」URLをエンコードして、他のURLを経由しても壊れないようにする。
フォーム送信後にアドレスバーに表示されるエンコードされた値をデコードする。
不正な形式のURLがどのように解析されるかをテストする。特殊文字をエンコードして、何が起こるかを観察する。
よくある質問
いつURLをエンコードすべきですか?▼
encodeURIとencodeURIComponentの違いは何ですか?▼
URLセーフなBase64とURLエンコーディングの違いは何ですか?▼
なぜ「+」が空白としてデコードされることがあるのですか?▼
非ASCII文字はどのようにエンコードされますか?▼
URLエンコーディングはHTMLエンティティのエンコーディングと同じですか?▼
関連ツール
JWTデコーダー
JSON Web Token(JWT)を瞬時にデコードします。お使いのブラウザ内で実行されるため、トークンがデバイスの外に出ることはなく、本番環境のシークレットでも安全に利用できます。
JSONフォーマッター&バリデーター
JSONをオンラインで整形、検証、minify(圧縮)します。すべてお使いのブラウザ内で動作するため、データがデバイスから外に出ることはありません。
XMLフォーマッター
XMLドキュメントを整形して読みやすくします。SOAP、サイトマップ、RSSフィード、設定ファイルに役立ちます。
Base64エンコーダー&デコーダー
文字列をBase64にエンコードしたり、Base64をテキストにデコードしたりします。あなたのプライバシーを尊重し、すべてブラウザ内で実行されます。
HTMLエンティティエンコーダー&デコーダー
特殊文字をHTMLエンティティ(&、<など)に変換したり、その逆を行ったりします。テキストを安全にHTMLへ埋め込むのに役立ちます。
CSS圧縮ツール
CSSからコメント、空白、不要な文字を取り除いて、ファイルサイズを削減します。