Base94エンコーダー&デコーダー
「Hello, world!」はBase94で/P|?l:+>Nq\sr<+rになります。空白を除く!から~までの印字可能なASCII文字をすべて使うので、1文字あたりの情報がBase64より多く、ASCIIの範囲に収まります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello, world!
- 結果
- /P|?l:+>Nq\sr<+r
- 計算モード
- Encode
- バリアント
- base94
- バイト
- 13
Base94符号化は、空白を除く印字可能ASCII文字すべて—感嘆符からチルダまでの九十四記号—にバイナリデータを写像します。各文字がBase64の六十四記号アルファベットより多くの情報を運びつつ、端末・チャット・プレーンテキスト設定で使われる古典的な印字可能範囲内に留まります。ASCIIを離れずに最大密度を得たいとき、短いトークン向けにBase64より密な貼り付け安全な形が必要なとき、あるいは空白を除く印字可能集合を既に前提とするプロトコル向けに、利用者はBase94エンコーダーやBase94デコーダーを探します。本機能はその作業を明確に行います。符号化は決定的で、UTF-8の後に大きな整数による基数二百五十六から基数九十四への変換を行います。復号は空白・制御文字・アルファベット外の記号を拒否し、静かな置換は行いません。
UTF-8テキストをBase94へ符号化して印字可能密度を最大化する
エンジンは文字列をUnicodeテキストとして解釈し、UTF-8バイトへ直列化したうえで、大きな整数の演算により基数二百五十六から基数九十四へ変換します。
各剰余は感嘆符からチルダまで—空白も制御符号もないちょうど九十四の印字可能ASCII文字—の固定アルファベットを指し、空白以外の任意の印字可能文字を受け入れる経路向けに、常に密で貼り付け安全な文字列になります。多言語テキスト・絵文字・句読点も、Latin-1の近道ではなく完全なUTF-8経路のため正しく符号化されます。
応答には常にBase94文字列のresult、encodeのmode、base94のvariant、符号化前のUTF-8長のbytes、九十四文字全体のalphabetが含まれ、テストでアルファベットを検証できます。アルゴリズムはネットワークも乱数ソルトも壁時計も使わない純粋な算術のため、同一入力は常に同一出力になります。
短いトークン、設定断片、ドキュメント見本、あるいは空白を除く完全な印字可能ASCII集合を既に許容する任意のパイプラインで、Base64より密なテキスト安全な詰め込みが必要なときにこの経路を使ってください。
Base94をテキストへ復号し不正文字を扱う
modeをdecodeにし、textにBase94文字列を置きます。アルファベットは厳密で、感嘆符からチルダまでの九十四文字だけが受理されます。先頭の感嘆符は先頭ゼロバイトとして復号され、符号化経路と一致するため長さを保つ往復は安定します。
成功した復号は回収文字列のresult、mode decode、variant base94、復号UTF-8長のbytes、encode応答と対称のalphabetを返します。
人が読める内容向けにbase94エンコーダー・base94デコーダー・印字可能ascii基数符号化という検索意図があるときは本機能を優先し、標準Base64・URL安全Base64・Base58・Ascii85はそれぞれ別ランディングとアルファベットの別ツールのままにしてください。
Base94が向いている場面と制限
授業デモ、サポート用プレイブック、Base64との密度比較、カスタムライブラリを入れない単発変換には、ブラウザ上の無料Base94エンコーダーを使います。
典型的な流れは、空白以外の任意の印字可能ASCIIを許すテキスト専用チケットへ短い設定値を符号化して保存し、メールやチャットで送り、受信側でmode decodeにより復号してbytesが元の長さと一致することを確認します。
別の流れでは、リリース前にドキュメント見本が文書化された平文へなお復号できることを、encodeとdecodeのフィクスチャを固定して継続的インテグレーションがアルファベットの偶発的ずれを検知するようにします。
元テキストは他のKIT parse項目と同じ保持規則に従い、アルゴリズムは隔離環境間で完全に決定的なため、結果を継続的インテグレーションのフィクスチャに固定しても安全です。
よくある質問
テキストをBase94へ符号化するには?
平文のUTF-8文字列をtextに、mode encode(またはmode省略。応答のresultがBase94文字列、bytesがUTF-8長です。
Base94をテキストへ戻すには?
modeをdecodeにし、textにBase94文字列を置きます。受理されるのは! から~までの印字可能ASCII94記号のみです。resultが回収されたUTF-8テキストです。
不正なBase94文字ではどうなりますか?
アルファベット外の文字(空白や制御符号を含む)は文字と位置を示すメッセージで拒否され、検証失敗は課金されません。
Base94はBase64と何が違いますか?
Base94は空白を除く印字可能ASCII94文字(!–~)を使い、Base64の64記号アルファベットより密に詰めます。本ツールはBase64・Base58・Ascii85ではなく、それらは別ランディングとアルファベットです。
Base94の結果が感嘆符で始まるのはなぜですか?
感嘆符は字母の最初の記号で、ゼロを表すからです。データの先頭にあるゼロのバイトは先頭の感嘆符になり、デコードするとゼロのバイトに戻るので、長さも正確に復元されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/base94 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/base94", {
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/base94",
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/base94", 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/base94", 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.base94",
"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に選び、テキスト欄を貼り付けると、変換後の文字列とバイト長および固定アルファベットが返るか、九十四記号集合外の文字を含む復号対象に対して明確なinvalid_inputエラーが返ります。
UTF-8テキストをBase94へ符号化して印字可能密度を最大化する
必須の文字列フィールドtextにBase94で表したい平文を入れたJSON本体を送り、modeは既定のencodeのままにするか、明示的にencodeを指定してください。UTF-8ペイロード先頭のゼロバイトは先頭の感嘆符(アルファベット指数ゼロ)に写像され、Base58の先頭1の慣習と同様に、往復で長さが保たれ空ペイロードは空のままです。古いフォーム名からクライアントを生成する場合、同一フィールドに任意の別名input・value・sを受け付けます。
Base94をテキストへ復号し不正文字を扱う
空白・タブ・改行・制御符号・印字可能範囲外のバイトを含む他の文字は、不正なBase94文字とその位置を示すメッセージ付きの即時invalid_input失敗となり、破損したUnicodeではなく貼り付けの修正が可能です。アルファベット検証の後、回収バイトは致命的デコーダでUTF-8として解釈され、有効なUnicodeテキストでなければ置換文字ではなくinvalid_inputになります。検証失敗は前払いAPIでは課金されないため、疑わしいトークンの確認は運用者にとって安価で、利用者にとっても安全です。
API利用・料金・ワークフロー・実務上の制限
バックエンド・サーバーレス関数・SDKが同じ符号化または復号工程を残高下で必要とするときは、前払いKIT APIを成功アイテムあたり$0.002で使い、エンジンが拒否した後の検証失敗は残高を消費しません。連携先がBase64やBase85しか話さないときはこのエンドポイントと組み合わせつつ、手順は別ランディングに分け、Base94の最大印字可能密度・Base64の普及・Ascii85 Adobeストリームという単一の検索意図に各ページを合わせます。SDKを提供する作者はresultフィールドをコピーボタンへ直接対応付けでき、mode・variant・alphabetのラベルは九十四の印字可能文字集合を必要とする読者向けにOpenAPI例を自明にします。
連携の活用例
最大密度のテキスト安全なトークン
空白以外の任意の印字可能ASCIIを受け入れるチケット・チャット・JSON向けに、短いUTF-8秘密や設定断片をBase64より密に詰め、受信側で同じmodeフィールドにより復号します。
Base64・Base85との密度ベンチマーク
ドキュメント見本やプロトコル設計メモ向けにテキスト安全な表現を選ぶとき、同一ペイロードの符号化長をBase94・Base64・Ascii85で比較します。
ドキュメントとCIゴールデン検査
Base94アルファベットや先頭ゼロ規則がずれたらすぐ失敗するよう、encodeとdecodeのフィクスチャを固定し、ドキュメント見本と継続的インテグレーション試験を守ります。
技術的な質問
Base94エンコーダーは無料ですか?
ブラウザツールは端末上で無料です。API呼び出しは成功アイテムあたり$0.002の前払いKIT残高を使い、検証失敗は課金されません。