URLエンコード・デコード
URL Encoder & Decoder
URLとクエリの値をパーセント符号化・復号し、URL全体と構成要素のどちらとして扱うかを切り替えられます。
URLをパーセント符号化し、また元に戻します。どれも「URLエンコード」と呼ばれてしまう4つの規則——`encodeURIComponent`、`encodeURI`、厳密なRFC 3986、そして空白が`+`になるフォームの符号化——を分けて扱います。選び違えると、誰かが`&`を入力するまでは動くリンクができあがります。
クエリの値ひとつ、パスの一片ひとつ、フラグメントひとつに使います。`encodeURIComponent` は `/ ? : @ & = + $ , #` をエスケープし、`A-Za-z0-9 - _ . ! ~ * ' ( )` はそのまま残します。
テキスト
符号化された値
入力
0文字
出力
0文字
エスケープした文字
0
使い方
適用する範囲を先に選びます
クエリの値1つ、あるいはパスの一片ならComponentです。ほとんどはこちらです。URL全体は、すでにできあがっているURLを整えたいときにだけ使い、`?`・`&`・`/`は意図的にそのままにします。
貼り付けて結果を読みます
パネルの下のカウンタに、何文字がエスケープされたかが出ます。何も起きない範囲を選んでしまったことに早く気づく方法です。
古いURLをデコードするときはバイトの符号化を変えます
十数年前の日本のサイトのリンクは、UTF-8ではなくShift_JISのバイト列をパーセント符号化していました。UTF-8として解くと文字化けします。デコードのモードの選択欄には、Shift_JIS、EUC-KR、GB18030とLatin-1系があります。
パラメータが多いときは項目ごとに編集します
「クエリ文字列として編集」を切り替えると、URLが名前と値の行に分かれます。値はデコードして表示し、書き戻すときに符号化し直すので、`next=`の中に丸ごと入ったURLも編集に耐えます。
よくある質問
ComponentとURL全体は何が違いますか
Componentは区切り文字の`/ ? : @ & = +`まで符号化します。値の中にそうした文字があると、URLがそこで分かれてしまうからです。URL全体は、それらが構造そのものなので手を付けません。値にURL全体の規則を使うのが、値にアンパサンドが入った瞬間に壊れるリンクを作る定番の方法です。
署名の検証が通らないのはなぜですか
`encodeURIComponent`が`! ' ( ) *`をそのままにするのに対し、RFC 3986はそうしないから、という可能性が高いです。OAuth 1.0やAWS SigV4をはじめ、ほとんどの署名方式は厳密な規則で正規化するので、アポストロフィを含む値はハッシュが変わります。厳密の範囲があるのはそのためです。
「二重に符号化されています」という注記はどういう意味ですか
結果をもう一度デコードすると別のものが出てくる、という意味です。`%20`であるべきところに`%2520`がある場合です。多くは、クライアントで一度、プロキシやフレームワークでもう一度符号化されたということです。元の値を得るには2回デコードし、そのうえでパイプラインを直してください。
空白が`+`になったり`%20`になったりするのはなぜですか
`+`は`application/x-www-form-urlencoded`のものです。フォームのPOSTの本文と、`URLSearchParams`が作る形式がそれにあたります。URLのそれ以外の場所では空白は`%20`で、`+`はプラス記号そのものを意味します。混ぜると`a+b`が`a b`になったり、その逆になったりします。
ここから渡せます
URLスラッグ生成
Slug Generator
タイトルをURLに使える文字列に変え、ハングルはローマ字に置き換えて区切り文字も選べます。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
HTMLエンティティ変換
HTML Entity Encoder
HTMLの実体参照をエスケープして元に戻し、名前・10進・16進の書き方を出し分けます。
URL解析・クエリ編集
URL Parser & Query Editor
URLを構成要素に分け、クエリパラメータを編集できる表として見せ、書き換えた結果を組み立て直します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
HTMLエンティティ変換
HTML Entity Encoder
HTMLの実体参照をエスケープして元に戻し、名前・10進・16進の書き方を出し分けます。
Punycode変換
Punycode Converter
国際化ドメイン名とPunycodeを相互に変換し、見分けのつきにくい文字があれば警告します。
URL解析・クエリ編集
URL Parser & Query Editor
URLを構成要素に分け、クエリパラメータを編集できる表として見せ、書き換えた結果を組み立て直します。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。
文字列のハッシュ
Text Hash
文字列のMD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC-32を計算し、大文字表記とBase64での出力も選べます。