テキストエンコーダー・デコーダー
Base64、URLエンコード、HTMLエンティティ、Unicodeエスケープから形式を選び、テキストを入力または貼り付けると、入力しながらエンコードまたはデコードされた結果が表示されます。入れ替えボタンで出力を次の入力にできるので、往復変換を確認できます。無料で、登録は不要です。テキストはブラウザ内で変換され、アップロードされることはありません。
テキストエンコーダー・デコーダーの使い方
- 1. 形式を選びます。 Base64、URLエンコード、HTMLエンティティ、Unicodeエスケープ。各カードに用途が書かれています。
- 2. エンコードかデコードを選びます。 エンコードは読めるテキストを形式に変換し、デコードは元に戻します。
- 3. 入力または貼り付けます。 入力するたびに出力が表示されます。何かが送信されることはありません。
- 4. コピーまたは入れ替えます。 クリップボードにコピーで出力をコピーします。入力/出力を入れ替えは、出力を入力欄に移して方向を逆にします。往復変換を確かめる最も手早い方法です。
用途に応じたエンコード形式
| 形式 | 用途 | 規格 | 出力 |
|---|---|---|---|
| Base64 | テキストしか扱えない経路でバイト列を運ぶ:メールの添付、data URI、トークン、JSON | RFC 4648 | 英数字、+、/、=の詰め物。約3分の1長くなります |
| URLエンコード | 文字をクエリ文字列やパスの一部に安全に入れる | RFC 3986 | 安全でないバイトごとに%と16進数2桁 |
| HTMLエンティティ | Webページで<、&、ASCII以外の文字を表示する | HTML文字参照 | éのような10進数の数値参照 |
| Unicodeエスケープ | JavaScript、JSON、Javaのソースコードに非ASCII文字を書く | JSON(RFC 8259)、ECMAScript | 文字ごとに\uと16進数4桁 |
暗号化ではありません。 4つとも、鍵を使わず、誰でも元に戻せる公開された可逆変換です。特にBase64は保護と誤解されがちですが、バイト列の書き方を変えるだけです。
具体例
テキスト Café & crème ☕ を、ツールが出力するとおりに各形式で変換すると次のようになります:
| 形式 | エンコード結果 |
|---|---|
| Base64 | Q2Fmw6kgJiBjcsOobWUg4piV |
| URLエンコード | Caf%C3%A9%20%26%20cr%C3%A8me%20%E2%98%95 |
| HTMLエンティティ | Café & crème ☕ |
| Unicodeエスケープ | Caf\u00e9 & cr\u00e8me \u2615 |
それぞれが何をそのままにするかに注目してください。HTMLエンコードはアンパサンドを&と書きますが、英字と空白はそのままです。Unicodeエスケープはコードが127を超える文字だけを変えるため、アンパサンドはそのまま残ります。URLエンコードは文字列全体をUTF-8のバイト列として書き換えます。éはバイト C3 A9 の2つなので%C3%A9になり、空白は%20です。Base64は、文字列全体のUTF-8バイト列を3バイトずつのまとまりで扱うため、すべてを書き換えます。
つまずきやすい点
- URLエンコードは完全なURLではなく、部品に使います。 ツールは英字、数字、
- _ . ! ~ * ' ( )以外をすべてエンコードするため、a b&c=d/e?fはa%20b%26c%3Dd%2Fe%3Ffになります。スラッシュ、コロン、疑問符もエンコードされます。これは値としては正しいものの、URL全体を書くと壊れてしまいます。 - 空白は%20になり、プラス記号はデコードされません。 フォームデータでは
+が空白を表しますが、ここでのデコードではa+b%20cはa+b cになります。 - Base64は標準のアルファベットでエンコードします。 デコードではURLセーフなBase64も受け付けます。これは
+と/の代わりに-と_を使い、=の詰め物が省かれていることもあります。エンコードは常に+、/、詰め物を書くので、URLセーフな形式が必要な場合はそれらを入れ替えてください。 - U+FFFFを超える絵文字などの文字 は、HTMLエンコードでは1文字として扱われ、1文字ごとに1つの参照が書かれます(😀は
😀)。Unicodeエスケープでは、2つのサロゲートのエスケープとして書かれます(😀は\ud83d\ude00)。これはJavaScriptやJSONで受け付けられます。 - デコードのエラーは 別のメッセージではなく、出力欄に角括弧で表示されます(例:
[Error: invalid Base64 input])。
どのツールが必要ですか?
このページは、Web向けにテキストを変換します。テキストの生のバイト列を見たい場合は、16進数変換ツール(16進数のバイト)か2進数変換(8ビットのまとまり)を使ってください。文字の数値を見たい場合は、ASCII変換ツールが10進数のコードを示します。数値の基数を変換するには、基数変換を使います。Base32、Base58、Ascii85は、今後公開予定のBase32・Base58・Ascii85変換ツールで扱う予定です。
よくある質問
- このツールはどの形式に対応していますか?
- 4つです:Base64(RFC 4648)、URLのパーセントエンコード、HTMLの10進数の数値エンティティ、Unicodeの
\uエスケープ。それぞれエンコードもデコードもできます。 - Base64は何に使われますか?
- Base64は、バイナリデータを64個の印字可能な文字で表し、テキストを前提とするシステムでも運べるようにします。メールの添付ファイル、画像を埋め込む
data:URI、HTTPのBasic認証ヘッダー、JSON Web Tokenのセグメントなどに使われます。データは約33%大きくなり、秘密性は得られません。 - URLエンコードはいつ使うべきですか?
- ユーザーが入力したテキストをURLの一部(クエリの値、パスのセグメント、フラグメント)に入れるときは、常に使います。空白、アンパサンド、等号、ASCII以外の文字などは、そのままでは誤って解釈されてしまうためです。アドレス全体ではなく、部品をエンコードしてください。
- エンコードは暗号化と同じですか?
- いいえ。エンコードは、保存や送信のためにデータの書き方を変えるもので、誰でも元に戻せ、鍵もありません。暗号化には秘密鍵が必要です。パスワードやトークンを隠すためにBase64やパーセントエンコードを使ってはいけません。
- URLセーフなBase64もデコードできますか?
- はい。
-と_を使ったURLセーフな文字列を、=の詰め物の有無にかかわらず貼り付ければ、デコードされます。エンコードでは標準のアルファベットが書かれるため、URLセーフな形式が必要なら、+を-に、/を_に自分で置き換えてください。 - デコーダーはどのHTMLエンティティを理解しますか?
- U+FFFFまでの文字について、10進数の参照(
é)と16進数の参照(é)、そして名前付きのいくつかの参照に対応します:&、<、>、"、'、 、©、®、™、€、£、¥、¢、—、–、«、»、…。éなどのほかの名前付きエンティティは、入力されたままになります。 - テキストはどこかにアップロードされますか?
- いいえ。4つの変換はすべて、入力に合わせてブラウザ内で実行され、CitationEasyには何も送信されません。