btoa Ascii85エンコーダー
テキストを元祖btoa方式のAscii85に変換します。xbtoaの枠と、ゼロ4バイトを表すz、空白4つを表すyに対応し、Hello, world!は87cURD_*#TDfTZ)+TMKBになります。復号時はチェックサムも確かめます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello, world!
- 計算モード
- Encode
- バリアント
- btoa
- バイト
- 13
原典のbtoaユーティリティは、AdobeがPDFやPostScriptで関連アルファベットを広めるよりずっと前から、バイナリを印字可能なAscii85として符号化していました。btoa Ascii85エンコーダーを探す方は、古典的なxbtoa Begin/xbtoa End枠、4個のゼロバイトを表す1文字z、4個のASCII空白を表すy空白圧縮タグなど、Adobe系ツールが省略したり別実装したりしがちな機能を必要とすることが多いです。本機能はその歴史的方言のみに焦点を当てます。符号化は常に5文字の完全グループを出力し、末尾の不完全ブロックはゼロ詰めし、真のバイト長をEnd行に記録し、メール時代の貼り付けでも往復できるよう約78文字で改行します。復号は枠付きアーカイブを受け取り古典的なファイルチェックサムを検証し、簡易確認用に枠なしアルファベット本体も許可します。
xタグ付き原典btoa Ascii85へUTF-8を符号化
エンジンは文字列をUnicodeテキストとして解釈し、UTF-8バイトへ直列化し、4バイトずつをビッグエンディアンの32ビット値にまとめます。各完全グループは、感嘆符から小文字uまでの古典アルファベットの5文字になります。グループがすべてゼロのときは感嘆符5個の代わりに1文字のzを出します。
グループがASCII空白バイト4個のときは1文字のyを出します。これはUnixツール4.2版が導入した空白圧縮で、Adobe専用の復号器の多くは拒否します。末尾の不完全グループは算術用にゼロ詰めされるため、符号化器は常に5文字の完全グループを書き、真のバイト長をxbtoa End行に書いて復号側がパッドを正確に捨てられるようにします。
出力は特徴的なxタグで枠付けされます。先頭行xbtoa Begin、約78文字ごとに折り返した符号化本体、10進と16進の長さおよび古典チェックサムE・S・Rを含む最終行xbtoa End Nです。空文字列は有効で、Nが0の枠付きアーカイブになります。
多言語テキストと絵文字は完全なUTF-8経路のため往復します。応答には枠付きアーカイブのresult、mode encode、variant btoa、UTF-8長のbytes、framed trueが含まれます。同一入力は常に同一出力になります。
アルゴリズムはネットワークもソルトも時計も使わない純粋算術だからです。
btoa Ascii85を復号し不正・無効入力を拒否
modeをdecodeにし、btoa Ascii85文字列をtextに入れてください。貼り付けにxbtoa Beginとxbtoa End行がある場合、エンジンはその枠を外し、NおよびE・S・Rチェックサム欄を解析し、タグ間の本体だけを復号します。本体内の空白と改行は無視されるため、複数行のメールアーカイブも動作します。
アルファベットは厳格で、感嘆符から小文字uまで、および4ゼロの単独zと4空白のyのみが受理されます。zでもyでもないのに5文字未満の末尾グループは拒否されます。完全グループを復号したあと、枠がある場合はNバイトに切り詰め、パッド枠を含むバイナリグループ上で古典的なCeor・Csum・Crotを再計算します。
EndのないBegin、BeginのないEnd、10進と16進のN不一致も不正扱いになります。枠なしのアルファベットのみ本体は便宜上受理されますが、Nがないと復号器は符号化器がEnd行に記すゼロパッドも含め、復号した全バイトを保持します。検証後、復元バイトは致命的デコーダでUTF-8として解釈され、非テキストが置換文字になりません。
成功時のresultは復元文字列、mode decode、variant btoa、平文長のbytes、framed trueまたはfalseです。
ほかのAscii85ツールとの違い
Usenet期アーカイブの調査、古いメール添付の移行、バイナリからテキストへの歴史の教材デモ、旧Unixバイナリを入れない単発変換には、無料のブラウザ内btoa Ascii85エンコーダーをご利用ください。検証失敗はエンジン拒否後に残高を消費しません。
典型的な流れは短いUTF-8フィクスチャを符号化し、枠付きアーカイブをメールやチャットで送り、mode decodeでbytesとresultが原文と一致することを確認します。検索意図が明確にbtoa Ascii85、xbtoa Begin、空白圧縮付き原典btoaのときはこのページを優先してください。
ブラウザのJavaScript関数btoaを指す場合は標準Base64ツールを優先します。名称が歴史的に重なるだけで全く別アルゴリズムです。ソース文は他のKIT parse項目と同じ保持規則に従い、アルゴリズムが隔離間で完全に決定論的なため結果をフィクスチャに固定しても安全です。
活用例
Usenet・メールのレガシーbtoaアーカイブ
古い添付の移行や歴史的フィクスチャ検証の際に、zゼロ連続とy空白圧縮を使う古典的なxbtoa Begin/Endアーカイブを復号または再符号化します。
よくある質問
原典btoa Ascii85へどう符号化しますか?
resultはxbtoa Beginから始まり、長さとE/S/Rチェックサム付きxbtoa Endで終わる枠付きアーカイブです。
btoa Ascii85アーカイブはどう復号しますか?
modeをdecodeにし、枠付きまたは枠なしのbtoa文字列をtextに入れます。枠がある場合、NとE/S/Rを検証してからresultが復元UTF-8テキストを返します。
zとyタグとは何ですか?
zは4個のゼロバイトを1文字に圧縮します。yはASCII空白バイト4個(0x20)を1文字に圧縮します。どちらも本ツールが実装する原典btoa方言の一部です。
JavaScriptのbtoaやAdobe Ascii85と同じですか?
いいえ。 ブラウザのbtoaはBase64です。Adobe Ascii85は任意の<~ ~>区切り、部分末尾グループ、通常はy空白タグなしです。本ツールはxbtoaのxタグ付きUnix btoa Ascii85方言です。
End行のE、S、Rの値は何のためにありますか?
この形式で昔から使われている3つのチェックサムです。復号のときにデータから計算し直して比べ、一致しなければ、壊れた文章を黙って返さずに分かりやすいメッセージで受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/ascii85-btoa \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/ascii85-btoa", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/ascii85-btoa",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/ascii85-btoa", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/ascii85-btoa", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hello, world!"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ascii85_btoa",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
modeでencodeまたはdecodeを選び、textフィールドを送ると、枠付きアーカイブまたは復元UTF-8文字列が返り、アルファベット・枠・長さ・E/S/Rチェックサムが検証できない場合は明確なinvalid_inputエラーになります。
xタグ付き原典btoa Ascii85へUTF-8を符号化
原典btoa方言で表現したい平文メッセージを必須文字列フィールドtextに入れたJSON本体を送り、modeは既定のencodeのままにするか、明示的にencodeを指定してください。任意エイリアスinput・value・sも同一フィールドとして受け付けます。
btoa Ascii85を復号し不正・無効入力を拒否
uより後の文字、他符号化から借りたURL句読点、バイナリノイズなどそれ以外は、無効なbtoa Ascii85条件を示すメッセージ付きの即時invalid_inputになります。E・S・Rの不一致は黙って壊れたデータを返す代わりにinvalid_inputで失敗します。検証失敗は前払いAPIでは課金されません。
API利用・料金・運用とAdobe/JSのbtoaとの違い
バックエンド・サーバーレス関数・SDKが同じ符号化または復号を残高付きで行う場合は、成功1件あたり$0.002の前払いKIT APIを使います。ペイロードがチルダ付き区切りやyなしのPDF風部分末尾グループを使うときは、別のAdobe Ascii85 Base85ツールを優先します。SDK作者はresultをコピーボタンに割り当てられ、variant btoaとframedラベルにより、xタグ方言だけを知る読者にもOpenAPI例が分かりやすくなります。
連携の活用例
btoa方言向けCIゴールデン
枠・チェックサム・y/z圧縮規則が予期せず変わったら継続的インテグレーションが失敗するよう、符号化と復号の例を固定します。
バイナリからテキストへの歴史を教える
同一のmodeフィールドと明確なinvalid_inputエラーで、原典btoaがAdobe Ascii85やJavaScriptのBase64 btoaとどう違うかを受講者に示します。
技術的な質問
btoa Ascii85エンコーダーは無料ですか?
ブラウザツールはお使いの端末上で無料です。API呼び出しは成功1件あたり$0.002の前払いKIT残高を使い、検証失敗は課金されません。