URLエンコード・Base64・HTMLエスケープ

URLエンコード、UTF-8対応のBase64、HTMLエスケープの3種類の変換を、エンコード・デコードの両方向でまとめて行える無料ツールです。 方式を選んで貼り付け、ボタンを押すだけ。処理はすべてブラウザ内で行われ、入力内容は送信されません。

方式を選んでから「エンコード」または「デコード」を押してください。
この指定はエンコード時のみ有効です。デコードはどちらでも %XX をすべて元に戻します。
処理はこの端末のブラウザ内だけで行われ、送信・保存されません。

※ 入力内容はブラウザ内だけで変換され、サーバーへ送信されません。 変換結果は、利用する前に内容をご確認ください。

広告スペース(審査通過後に表示)

このツールでできること

このツールは、Web開発やデータのやり取りでよく使う3種類の変換を、1つの画面でエンコード・デコード両方向にかけられる無料ツールです。 1つ目はURLエンコード。日本語や記号を「%E3%81%82」のような形式に変換し、URLのクエリやパスに安全に埋め込めるようにします。 encodeURIComponent(記号もすべてエスケープ)とencodeURI(区切り記号は残す)を切り替えられます。 2つ目はBase64のテキスト変換。文字列をUTF-8のバイト列に直してからBase64化するため、全角文字や絵文字も欠けずに往復できます。 「+」「/」を「-」「_」に置き換え末尾の「=」を除くURLセーフBase64での出力にも対応します。 3つ目はHTMLエスケープ& < > " '&amp; &lt; &gt; &quot; &#39; に相互変換し、HTMLへ文字列を貼り込むときのタグ崩れやXSSの元になる記号を無害化します。 APIのパラメータ確認やトークンの中身確認などに使えます。 会員登録やインストールは不要で、パソコンでもスマートフォンでも同じように動作します。

使い方

  1. 「変換の方式」でURL・Base64・HTMLのいずれかを選びます。方式に応じて、エンコード範囲やURLセーフの指定欄が表示されます。
  2. 入力欄に変換したい文字列を貼り付けます。
  3. 元に戻す方向なら「デコード」、変換する方向なら「エンコード」を押すと、下の結果欄に表示されます。
  4. 結果をさらに変換したいときは「入れ替え(結果を入力へ)」で結果を入力欄に移せます。やり直すときは「クリア」で入力と結果を消去します。
  5. 結果は「結果をコピー」でクリップボードにコピーできます。結果の文字数とUTF-8バイト数も表示します。

デコードに失敗した場合(不正な%エスケープ、Base64に使えない文字、テキストとして復元できないバイト列など)は、 原因の見当がつく日本語の警告を表示し、結果欄は空のままにします。

URLエンコードとBase64の違い

どちらも「そのままでは扱いにくい文字を、限られた文字種の文字列に置き換える」点は同じですが、目的が異なります。 URLエンコードはURLの文法を壊さないための変換で、英数字と一部の記号はそのまま残し、問題になる文字だけを「%XX」にします。読める部分は読めるまま残ります。 Base64は任意のバイト列を64種類の文字だけで表すための変換で、元が何であれ結果は英数字と「+」「/」(URLセーフなら「-」「_」)だけになります。 画像や暗号鍵などのバイナリをテキストとして運ぶ用途が中心で、結果は元の約1.33倍の長さになり、そのままでは意味を読み取れません。 「URLに日本語を入れたい」ならURLエンコード、「バイナリやトークンを文字列として持ち回りたい」ならBase64、と使い分けます。

安全性について

入力した文字列の変換は、すべてお使いのブラウザ内のJavaScript標準API(encodeURIComponentTextEncoderbtoaatob など)だけで行います。 当サイトや外部のサーバーへ送信・保存されることは一切なく、実行時に外部へ通信しません。 下書きの自動保存(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は暗号化ではなく、鍵なしで誰でも元に戻せる単なる文字表現の変換です。秘密情報の保護には暗号化を使ってください。

広告スペース(審査通過後に表示)