本文へスキップ

テキストエンコーダー・デコーダー

Base64、URLエンコード、HTMLエンティティ、Unicodeエスケープから形式を選び、テキストを入力または貼り付けると、入力しながらエンコードまたはデコードされた結果が表示されます。入れ替えボタンで出力を次の入力にできるので、往復変換を確認できます。無料で、登録は不要です。テキストはブラウザ内で変換され、アップロードされることはありません。

テキストエンコーダー・デコーダーの使い方

  1. 1. 形式を選びます。 Base64、URLエンコード、HTMLエンティティ、Unicodeエスケープ。各カードに用途が書かれています。
  2. 2. エンコードかデコードを選びます。 エンコードは読めるテキストを形式に変換し、デコードは元に戻します。
  3. 3. 入力または貼り付けます。 入力するたびに出力が表示されます。何かが送信されることはありません。
  4. 4. コピーまたは入れ替えます。 クリップボードにコピーで出力をコピーします。入力/出力を入れ替えは、出力を入力欄に移して方向を逆にします。往復変換を確かめる最も手早い方法です。

用途に応じたエンコード形式

形式用途規格出力
Base64テキストしか扱えない経路でバイト列を運ぶ:メールの添付、data URI、トークン、JSONRFC 4648英数字、+、/、=の詰め物。約3分の1長くなります
URLエンコード文字をクエリ文字列やパスの一部に安全に入れるRFC 3986安全でないバイトごとに%と16進数2桁
HTMLエンティティWebページで<、&、ASCII以外の文字を表示するHTML文字参照&#233;のような10進数の数値参照
UnicodeエスケープJavaScript、JSON、Javaのソースコードに非ASCII文字を書くJSON(RFC 8259)、ECMAScript文字ごとに\uと16進数4桁

暗号化ではありません。 4つとも、鍵を使わず、誰でも元に戻せる公開された可逆変換です。特にBase64は保護と誤解されがちですが、バイト列の書き方を変えるだけです。

具体例

テキスト Café & crème ☕ を、ツールが出力するとおりに各形式で変換すると次のようになります:

形式エンコード結果
Base64Q2Fmw6kgJiBjcsOobWUg4piV
URLエンコードCaf%C3%A9%20%26%20cr%C3%A8me%20%E2%98%95
HTMLエンティティCaf&#233; &#38; cr&#232;me &#9749;
UnicodeエスケープCaf\u00e9 & cr\u00e8me \u2615

それぞれが何をそのままにするかに注目してください。HTMLエンコードはアンパサンドを&#38;と書きますが、英字と空白はそのままです。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つの参照が書かれます(😀は&#128512;)。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進数の参照(&#233;)と16進数の参照(&#xE9;)、そして名前付きのいくつかの参照に対応します:&amp;、&lt;、&gt;、&quot;、&apos;、&nbsp;、&copy;、&reg;、&trade;、&euro;、&pound;、&yen;、&cent;、&mdash;、&ndash;、&laquo;、&raquo;、&hellip;。&eacute;などのほかの名前付きエンティティは、入力されたままになります。
テキストはどこかにアップロードされますか?
いいえ。4つの変換はすべて、入力に合わせてブラウザ内で実行され、CitationEasyには何も送信されません。

関連ツール

データ・マークアップ・コードのその他のツール