開発ツールを整える
中級Base64・URLエンコードを整える。
= 文字列をBase64・URLエンコードに(日本語も文字化けせず双方向)
エンコードが初めての方は、先に そもそもエンコードとは・どんな場面で使うか をどうぞ。
0 文字
変換の仕組み(入力の先頭だけ)
⚠ これは「暗号化」ではありません
Base64 も URLエンコードも、鍵なしで誰でも元に戻せる可逆な「詰め替え」です。見た目は読めなくなりますが、秘密は守れません。 パスワードや個人情報の隠蔽・保護には使わないでください。秘匿が必要なら暗号化(や、片方向で良いならハッシュ)を使います。
そもそもエンコードとは
データを、運びたい場所の「決まりごと」に合わせて書き換えること。
エンコード(encode)は、データを別の決まった書き方に変換することです。逆に元へ戻すのがデコードです。荷物を運ぶときに、送り先の規格に合う箱へ詰め替えるイメージです。中身を隠すための作業ではなく、「運べる形」にするための作業です。
インターネットには、そのままでは通せない文字や記号があります。たとえば URL に日本語や空白、& をそのまま入れると、意味が変わったり壊れたりします。そこで URL ではパーセントエンコード(URLエンコード)、画像のようなバイナリや日本語をテキストだけで扱いたいときにはBase64(ベースろくじゅうよん)が使われます。Base64 は英数字などの64種類の文字だけで表す方式です。
どこで・どんな場面で使うか
-
Web サイトの検索やリンクを作るとき
検索語をクエリ文字列に入れるとき、日本語や
&を安全な形に直します。ブラウザの URL で%E3…と見えるのがこれです。 -
API の認証ヘッダを読み書きするとき
Basic 認証は、ユーザー名とパスワードを Base64 にして送ります。仕組みを知っていると、通信のデバッグで中身を確認できます。
-
メールの添付ファイル
メールはもともと文字を送る仕組みなので、添付ファイルは Base64 でテキストにして運ばれます。
-
Web ページに小さな画像を埋め込むとき
画像を Base64 の文字列にして、ファイルを別に用意せず
data:の形でページに直接書けます。 -
文字化けの原因を調べるとき
文字コード(UTF-8 など)の違いで文字化けが起きます。エンコードの考え方が分かると、どこで食い違ったか追いやすくなります。
知らないと何が困るか
- URL がうまく動かない。記号や日本語を入れたリンクが途中で切れる原因が分からず、時間を失います。
- 「Base64 にしたから安全」と誤解する。Base64 は誰でも元に戻せます。パスワードを Base64 にして保管するのは、隠したことになりません。
- 通信やログの文字列が読めない。
eyJ…や%20のような文字列を見て、「ああ、これは変換後の姿だ」と気づけないと調査が止まります。
上のツールに日本語の文章を入れて、変換後の姿を見てみてください。元に戻す操作も試せます。
エンコードのポイント・4つ
「読めない形」にするのと「秘密にする」のは別。
- 1
Base64 は「3バイトを4文字」に詰め替える
バイト列を
A–Z a–z 0–9 + /の64種類だけで表す方式です。3バイトごとに4文字へ。端数のときは末尾に=(パディング)が付きます(残り2バイトなら=1個、1バイトなら==2個)。メール添付や画像のテキスト埋め込みなど、バイナリを文字として運ぶのが本来の用途です。 - 2
Base64URL は URL・ファイル名で安全な変種
標準 Base64 の
+と/は URL で別の意味を持つため、+→-、/→_に置き換え、末尾の=も省きます。JWT(トークン)や URL のクエリ、ファイル名でよく使われます。デコード時は逆変換し、長さを4の倍数に戻してから復号します。 - 3
URLエンコードは
encodeURIComponentとencodeURIで別物クエリの「値」1つを安全にするなら
encodeURIComponent。区切り記号/ ? : @ & = + $ , #も含めてエスケープします(例:a b&c→a%20b%26c)。一方、URL全体を渡すならencodeURI。区切りは壊さず、スペースなどだけ直します(a b&c→a%20b&c)。迷ったらクエリの値には encodeURIComponent。 - 4
日本語・絵文字は UTF-8 として扱います
「こんにちは」や 😀 のようなマルチバイト文字も、まず UTF-8 のバイト列にしてから変換するので文字化けしません(
こんにちはの Base64 は44GT44KT44Gr44Gh44Gv)。デコード時に並びが壊れていると、無言で文字化けさせずエラー表示します。貼り付けた Base64 に含まれる空白・改行は自動で無視します。
🔒 変換はすべてあなたのブラウザの中(JavaScript の TextEncoder / btoa / atob / encodeURIComponent など)で完結します。入力した文字はサーバに送られません(送信ゼロ)。
場面 01
APIを叩く・デバッグ
Basic認証ヘッダやJWTの中身、クエリ文字列のエスケープを手元で素早く確認。
場面 02
URLを組み立てる
日本語のキーワードや記号入りの値を、安全なクエリ文字列に整える。
場面 03
データを埋め込む
小さな設定やテキストを Base64 にして、URL・設定ファイルへ1行で持ち運ぶ。
このツールについて
文字列を Base64・Base64URL・URLエンコードに、入力するそばから変換。エンコード⇄デコードはワンクリックで切替。日本語や絵文字もUTF-8で安全に扱い、バイト数も表示します。これは暗号化ではなく「詰め替え」なので秘匿には使えません。入力はこの端末から一切出ません(送信ゼロ)。
文字列を Base64・Base64URL・URLエンコード に双方向変換。日本語・絵文字もUTF-8で文字化けなし。暗号化ではなく誰でも戻せる可逆エンコードなので秘匿には使えません。
🔰 かんたんに言うと
文字を「Base64」などの別表記に詰め替えるツール。メールやURLでデータを安全に運ぶためのもので、暗号化ではありません。
主な機能
- Base64 / Base64URL / URLエンコード / URL全体の4方式
- エンコード⇄デコードをワンクリック切替+入出力の入れ替え
- 日本語・絵文字もUTF-8で安全(文字化けなし)
- Base64の空白・改行を自動無視、壊れた入力はエラー表示
- 入力のUTF-8バイト数・出力文字数を表示
- すべてブラウザ内で完結(送信ゼロ)
- 変換の仕組みを、文字→バイト→6ビット→文字の図で表示
よくある質問
Q. Base64で暗号化できますか?
A. いいえ。Base64は鍵なしで誰でも元に戻せる可逆な「詰め替え」で、暗号化ではありません。見た目は読めなくなりますが秘密は守れないため、パスワードや個人情報の隠蔽には使わないでください。
Q. 日本語や絵文字を変換すると文字化けしませんか?
A. 文字化けしません。本ツールはまず文字列をUTF-8のバイト列に変換してからBase64やURLエンコードを行うため、「こんにちは」や絵文字のようなマルチバイト文字も正しく往復できます。
Q. Base64とBase64URLは何が違いますか?
A. 標準Base64の + と / は、URLやファイル名で別の意味を持ちます。Base64URLは + を -、/ を _ に置き換え、末尾の = (パディング)も省いた、URLで安全な変種です。JWTやクエリ文字列でよく使われます。
Q. encodeURIComponentとencodeURIはどう使い分けますか?
A. クエリの「値」1つを安全にするならencodeURIComponent、URL全体を渡すならencodeURIを使います。迷ったらクエリの値にはencodeURIComponentが安全です。
Q. コピーした長いBase64に改行が混ざっていても読めますか?
A. 読めます。デコード時、入力に含まれる空白や改行は自動で無視してから変換します。メールなどで折り返された値をそのまま貼り付けても問題ありません。
Q. 入力したテキストはサーバに送られますか?
A. 送られません。すべての変換はあなたのブラウザの中(TextEncoder・btoa・atob・encodeURIComponentなど)で完結します(送信ゼロ)。
入力値はURLの「#」以降に入るためサーバーには送信されません。リンクを開くと同じ状態を復元します。