どのテキストツールを使えばよいか
テキストツールの多くは、同じエンコーダーとデコーダーを別のプリセットで開いたものです。大事なのは、適切な場所から始めることです。
| やりたいこと | ツール |
|---|---|
| テキストを Base64 にする | Base64 エンコーダー または テキストを Base64 に |
| Base64 文字列を読む | Base64 デコーダー または Base64 をテキストに |
| 絵文字や非ラテン文字、バイト単位で正確な UTF-8 | UTF-8 を Base64 に、Base64 を UTF-8 に |
| Windows、.NET、PowerShell のワイド文字列 | UTF-16 を Base64 に、Base64 を UTF-16 に |
| 7 ビットのプレーンテキストのみ | ASCII を Base64 に、Base64 を ASCII に |
| 文字列が有効な Base64 か確認する | Base64 検証ツール |
| 改行、引用符、パディング不足、アルファベットの混在を直す | Base64 修復ツール |
| メール用に 76 文字の行にする | MIME Base64 エンコーダー |
| JSON、XML、HTML、CSV を含む Base64 | Base64 を JSON に、Base64 を XML に、Base64 を HTML に、Base64 を CSV に |
| data URI や API 用にマークアップをエンコードする | HTML を Base64 に、XML を Base64 に |
| エンコード後の長さを予測する | Base64 サイズ計算ツール |
文字コードが重要な理由
Base64 が扱うのはバイトで、文字については何も知りません。テキストをエンコードするには先にバイト列にする必要があり、その方法を決めるのが文字コードです。
| テキスト | UTF-8 | Windows-1252 | UTF-16LE |
|---|---|---|---|
é | w6k= | 6Q== | 6QA= |
Grüße | R3LDvMOfZQ== | R3L832U= | RwByAPwA3wBlAA== |
Web、JSON、ほとんどの API では UTF-8 が正しいデフォルトです。Windows API や PowerShell の -EncodedCommand が求めるのは UTF-16LE です。レガシー文字コードは、古いデータベース、デスクトップソフトから書き出した CSV、一部のメールで見かけます。デコードしたテキストで é の代わりに é と表示されたら、UTF-8 を Windows-1252 として読んでいます。デコーダーで文字コードを切り替えれば正しく表示されます。
デコードしたテキストがおかしいとき
- 意味のない記号や四角が並ぶ:Base64 の中身は画像、PDF、gzip 出力などのバイナリデータです。Base64 をファイルに を使うか、
H4sI…で始まる文字列なら gzip デコーダー を使ってください。 - 不正な文字や長さのエラーが出る:文字列が転送中に壊れています。検証ツール で位置がわかり、Base64 修復ツール でよくある原因を取り除けます。
- デコードできたが、結果がまた Base64:データが二重にエンコードされています。出力をもう一度デコードしてください。
- 文字列に
-と_がある:JWT や URL から来た Base64URL です。ここのデコーダーはどれも受け付けます。違いは Base64URL ツール で解説しています。
トークン、URL、SAML や Kubernetes Secret のような構造化ペイロードについては Web・トークンツール を参照してください。Base32、Base58、16進数などほかのエンコードは、基数変換ツール ですべて読めます。
よくある質問
Base64 文字列をデコードするにはどのツールを使えばよいですか?
まずは Base64 デコーダー から始めてください。出力が読めない場合、データはおそらくファイルか圧縮されたもので、Base64 をファイルに が種類を判別します。アクセント付きの文字がおかしい場合は、文字コードを変えてください。
同じテキストなのにツールによって Base64 が違うのはなぜですか?
Base64 がエンコードするのはバイト列で、テキストはまず文字コードを通してバイト列になります。é は UTF-8 なら w6k=、Windows-1252 なら 6Q==、UTF-16LE なら 6QA= です。相手側が使う文字コードに合わせてください。
デコードする前に文字列を整える必要はありますか?
通常は必要ありません。デコーダーは空白や改行を無視し、引用符や data:…;base64, プレフィックスを取り除き、URLセーフ文字を受け付け、不足したパディングを補います。何を直したかはステータス行に表示されます。ひどく壊れた入力には Base64 修復ツール を使ってください。