URLエンコード・Base64・HTMLエスケープ
URLエンコード、UTF-8対応のBase64、HTMLエスケープの3種類の変換を、エンコード・デコードの両方向でまとめて行える無料ツールです。 方式を選んで貼り付け、ボタンを押すだけ。処理はすべてブラウザ内で行われ、入力内容は送信されません。
※ 入力内容はブラウザ内だけで変換され、サーバーへ送信されません。 変換結果は、利用する前に内容をご確認ください。
このツールでできること
このツールは、Web開発やデータのやり取りでよく使う3種類の変換を、1つの画面でエンコード・デコード両方向にかけられる無料ツールです。
1つ目はURLエンコード。日本語や記号を「%E3%81%82」のような形式に変換し、URLのクエリやパスに安全に埋め込めるようにします。
encodeURIComponent(記号もすべてエスケープ)とencodeURI(区切り記号は残す)を切り替えられます。
2つ目はBase64のテキスト変換。文字列をUTF-8のバイト列に直してからBase64化するため、全角文字や絵文字も欠けずに往復できます。
「+」「/」を「-」「_」に置き換え末尾の「=」を除くURLセーフBase64での出力にも対応します。
3つ目はHTMLエスケープ。& < > " ' を & < > " ' に相互変換し、HTMLへ文字列を貼り込むときのタグ崩れやXSSの元になる記号を無害化します。
APIのパラメータ確認やトークンの中身確認などに使えます。
会員登録やインストールは不要で、パソコンでもスマートフォンでも同じように動作します。
使い方
- 「変換の方式」でURL・Base64・HTMLのいずれかを選びます。方式に応じて、エンコード範囲やURLセーフの指定欄が表示されます。
- 入力欄に変換したい文字列を貼り付けます。
- 元に戻す方向なら「デコード」、変換する方向なら「エンコード」を押すと、下の結果欄に表示されます。
- 結果をさらに変換したいときは「入れ替え(結果を入力へ)」で結果を入力欄に移せます。やり直すときは「クリア」で入力と結果を消去します。
- 結果は「結果をコピー」でクリップボードにコピーできます。結果の文字数とUTF-8バイト数も表示します。
デコードに失敗した場合(不正な%エスケープ、Base64に使えない文字、テキストとして復元できないバイト列など)は、 原因の見当がつく日本語の警告を表示し、結果欄は空のままにします。
URLエンコードとBase64の違い
どちらも「そのままでは扱いにくい文字を、限られた文字種の文字列に置き換える」点は同じですが、目的が異なります。 URLエンコードはURLの文法を壊さないための変換で、英数字と一部の記号はそのまま残し、問題になる文字だけを「%XX」にします。読める部分は読めるまま残ります。 Base64は任意のバイト列を64種類の文字だけで表すための変換で、元が何であれ結果は英数字と「+」「/」(URLセーフなら「-」「_」)だけになります。 画像や暗号鍵などのバイナリをテキストとして運ぶ用途が中心で、結果は元の約1.33倍の長さになり、そのままでは意味を読み取れません。 「URLに日本語を入れたい」ならURLエンコード、「バイナリやトークンを文字列として持ち回りたい」ならBase64、と使い分けます。
安全性について
入力した文字列の変換は、すべてお使いのブラウザ内のJavaScript標準API(encodeURIComponent、TextEncoder、btoa/atob など)だけで行います。
当サイトや外部のサーバーへ送信・保存されることは一切なく、実行時に外部へ通信しません。
下書きの自動保存(localStorage)も行わないため、ページを閉じれば入力内容は残りません。
ただしBase64は暗号化ではなく、誰でも元に戻せる単なる変換です。パスワードや秘密情報の保護には使えません。
共用のパソコンで使うときは、作業後に「クリア」を押すか、ブラウザのタブを閉じてください。
よくある質問
入力した文字列はどこかに送信されますか?
いいえ。エンコード・デコードはすべてブラウザ内のJavaScript(標準API)で行われ、入力内容や変換結果が当サイトや外部サーバーへ送信・保存されることはありません。下書きの自動保存(localStorage)も行わないため、タブを閉じれば入力内容は残りません。
URLエンコードの「encodeURIComponent」と「encodeURI」はどう違いますか?
encodeURIComponent は : / ? # [ ] @ ! $ & ' ( ) * + , ; = などの記号も含めてほぼすべての予約文字をエスケープします。クエリの値やパスの一部など「URLの部品」をエンコードする用途に向きます。encodeURI はURL全体を1本の文字列として扱い、区切り記号(: / ? # & = など)はエスケープせず残します。
Base64で日本語などのマルチバイト文字は正しく扱えますか?
はい。エンコード時はまず文字列をUTF-8のバイト列へ変換し、そのバイト列をBase64にします。デコード時はBase64をバイト列に戻したうえでUTF-8として文字列に復元します。btoa/atob だけでは扱えない全角文字や絵文字も変換できます。
URLセーフBase64とは何ですか?
標準のBase64で使う「+」「/」をそれぞれ「-」「_」に置き換え、末尾の「=」パディングを取り除いた形式です。URLのクエリやファイル名にそのまま入れても壊れません。このツールのデコードは、標準・URLセーフのどちらの入力でも自動で判別して復元します。
デコードに失敗するのはどんなときですか?
URLデコードでは「%」の後ろが16進数2桁になっていない(不完全なバイト列など)ときに失敗します。Base64デコードでは、Base64に使えない文字が混ざっている、長さが不正、あるいはBase64としては正しくてもUTF-8テキストとして解釈できない(画像などのバイナリ)ときに失敗します。いずれも警告を表示し、結果欄は空のままにします。
Base64はパスワードの保護に使えますか?
使えません。Base64は暗号化ではなく、鍵なしで誰でも元に戻せる単なる文字表現の変換です。秘密情報の保護には暗号化を使ってください。