URLエンコード・デコード
日本語や記号を %E3%81%82 の形に変換、または元に戻します。encodeURIComponent と encodeURI の違いを選べ、URLのクエリ文字列は key=value の表に分解して確認できます。
読み込み中…
使い方と仕様
「パラメータ値」は encodeURIComponent 相当で、英数字と - _ . ! ~ * ' ( ) 以外をすべて %XX にします。クエリの値やパスの一部を作るときはこちらを使います。「URL全体」は encodeURI 相当で、; / ? : @ & = + $ , # も変換せずに残すので、URLの構造を保ったまま日本語だけを変換できます。値の中に & や = を含めたいときに URL全体 を選ぶと壊れるので注意してください。
デコードで「URL全体」を選ぶと、%2F や %3F のように予約文字を表す %XX は元に戻さず、そのまま残します(decodeURI と同じ動作)。「+ を空白として読む」は、フォーム送信(application/x-www-form-urlencoded)で使われる + を空白に直します。%2B は常に + です。
「クエリを分解」では、URL の ? 以降(# より前)または貼り付けた a=1&b=2 の形を、key=value の表にします。キーも値もデコードした状態で表示し、同じキーが複数あっても順番どおり並べます。扱う文字コードはUTF-8だけです。Shift_JIS や EUC-JP の %83 などで作られたURLは、UTF-8として不正な並びになるため、位置を示してエラーにします。
よくある質問
- スペースが %20 になる場合と + になる場合があるのはなぜですか?
- URLのパスでは %20、HTMLフォームのクエリでは + が使われてきた経緯があります。エンコード側の「空白を + にする」で切り替えられます。受け取る側がどちらを期待しているかに合わせてください。
- 「%」の後ろが不正です、と出ます。
- % の後ろは16進数2桁(0-9, A-F)でなければなりません。「100%」のように % そのものを書いた文字列をデコードすると出るので、元の文字列の % を %25 にしてからデコードしてください。