basE91エンコーダー
basE91はテキストを91個の印字可能な文字に収め、Base64より短く埋め文字もいりません。「Hello, world!」はJoachim Henkeの元の字母で>OwJh>}A"=r@@Y?Fになり、basE91はUTF-8のテキストに戻せます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello, world!
- 結果
- >OwJh>}A"=r@@Y?F
- 計算モード
- Encode
- バリアント
- base91
- バイト
- 13
本機能はその日常的な作業に焦点を当てます。符号化は決定的で、UTF-8ののちビットキューbasE91算術です。復号は空白を取り除き、各記号を逆引き表で写像し、静かな置換を捏造せず不正な記号を拒否します。
UTF-8テキストをbasE91へ符号化
エンジンは文字列をUnicodeテキストとして解釈し、UTF-8バイトへ直列化したうえで、Joachim HenkeのbasE91ビットキューへ流し込みます。各入力バイトは八ビットを寄与し、十三ビット超がバッファされると、エンコーダーは九十一記号アルファベットから二文字の組を出力します。
十三ビット窓の値が最大八十八のときは、組を出す前に十四ビットを消費する可変幅の仕組みにより、固定のBase64展開よりbasE91が高密度になります。末尾の部分キューは残りの一または二記号としてフラッシュされ、復号側は等号などのパディングなしで正確なバイト長を復元できます。空文字列は有効で、ゼロバイトの空結果へ符号化されます。
多言語テキスト・絵文字・句読点は、Latin-1の近道ではなく完全なUTF-8経路のため往復します。入力が同一なら出力も常に同一です。アルゴリズムはネットワーク・乱数ソルト・壁時計のない純粋算術だからです。
短い設定断片・文書サンプル・レガシーbasE91経路向けに、Base64より高密度でテキスト安全な表現が必要なときはこの経路を使います。
basE91をテキストへ復号し不正文字を扱う
modeをdecodeにし、textにbasE91文字列を置きます。先頭・末尾・内部の空白(スペース・タブ・改行を含む)は取り除かれるため、複数行の貼り付けも機能します。
アルファベットは厳格で、Joachim Henkeが定義した九十一記号(大文字・小文字・数字、およびスペース・ハイフン・シングルクォート・バックスラッシュを除く固定の印字可能句読点)のみが受理されます。デコーダーは記号を対にしてビットキューを再構築します。
各対の先頭は九十一を法とする下位桁、次は九十一倍で、符号化と同じ八十八閾値に応じ十三または十四ビットが解放され、八ビット未満になるまで整バイトが出力されます。対になっていない末尾記号は残りキューの短いフラッシュとして扱います。
成功時の復号は、復元文字列のresult、mode decode、variant base91、復号後UTF-8長のbytesを返します。人が読める内容向けにbase91エンコーダー・basE91デコーダー・base91変換という検索意図のときは本機能を優先し、Base64・Base58・Ascii85は別ランディングの別ツールのままにします。
basE91が向いている場面と限界
教室デモ・サポート用プレイブック・トークン確認・一度きりの変換では、ネイティブパッケージを入れたり独自のビットキューを書いたりせず、ブラウザ内の無料basE91エンコーダーを使います。
典型的な流れでは短い設定値をテキストのみのチケット用に符号化し、メールやチャットで送り、受信サービスでmode decodeにより復号してbytesが元の長さと一致することを確認します。
別の流れではリリース前に文書サンプルが文書化された平文へなお復号されるかを検証し、encodeとdecodeのフィクスチャを固定して継続的インテグレーションがアルファベットの意図しないずれを検出します。相手系がBase64のみのときはBase64ツールと組み合わせつつ、basE91の密度とBase64の普及という別々の検索意図に合わせページを分けます。
元テキストは他のKIT parse項目と同じ保持規則に従い、アルゴリズムは分離環境間で完全に決定的なため結果を継続的インテグレーションのフィクスチャに固定して安全です。
よくある質問
テキストをbasE91へどう符号化しますか?
平文のUTF-8文字列をtextに、modeをencode(または省略。応答のresultがbasE91文字列、bytesがUTF-8長です。
basE91をテキストへどう復号しますか?
modeをdecodeにし、textにbasE91文字列を置きます。空白は取り除かれます。 resultが復元されたUTF-8テキストです。
無効なbasE91文字ではどうなりますか?
九十一記号のbasE91アルファベット外の文字は拒否され、検証失敗は課金されません。
basE91はBase64と何が違いますか?
basE91は91記号アルファベットと13/14ビット可変幅キューを使い、オーバーヘッドはおおよそ23%でBase64の約33%より小さくなります。本ツールはJoachim Henke basE91であり、RFC 4648 Base64ではありません。
basE91の文字列に改行や空白が入っていても大丈夫ですか?
大丈夫です。デコード時に先頭、末尾、途中の空白やタブ、改行は取り除かれるので、複数行で貼り付けた文字列もそのまま戻せます。ただしBase64の「=」のような字母にない文字は拒否されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/base91 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/base91", {
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/base91",
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/base91", 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/base91", 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.base91",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
basE91は、データを九十一個の印字可能ASCII文字に詰め込むコンパクトなバイナリ対テキスト方式で、通常Base64より高密度であり、従来の印字可能範囲を離れずに短いテキスト安全なペイロードが必要なときに役立ちます。base91エンコーダーやbasE91デコーダーを探す方は、JSON・チケット・チャットに短いバイナリトークンを保存したり、Base64とのオーバーヘッドを比較したり、別ツールがJoachim Henkeの元のアルファベットで生成したbasE91文字列を復元したりします。modeでencodeまたはdecodeを選び、テキスト欄を送り、変換後の文字列とバイト長を受け取るか、basE91アルファベット外の文字を含む復号ペイロードでは明確なinvalid_inputエラーを受け取ります。前払いAPIは、各サービスに言語固有ライブラリを入れずに安定したbasE91ステップを必要とするスクリプト・SDK・継続的インテグレーション用フィクスチャ向けに、成功した項目あたり$0.002で同じ契約を公開します。
UTF-8テキストをbasE91へ符号化
必須の文字列フィールドtextに、basE91で表現したい平文メッセージを入れたJSON本体を送り、modeは既定のencodeのままにするか、明示的にencodeを設定します。古いフォーム名からクライアントを生成する場合、同じフィールドに任意の別名input・value・sも受け付けます。応答には常にbasE91文字列のresult、encodeのmode、base91のvariant、符号化前のUTF-8長のbytesが含まれ、テストでペイロードサイズを検証できます。
basE91をテキストへ復号し不正文字を扱う
それ以外の文字(Base64パディングの等号、他方式由来のURL安全ハイフンやアンダースコア、バイナリ雑音など)は、無効なbasE91文字条件を名指しするinvalid_inputを即時に起こし、壊れたUnicodeではなく貼り付けの修正を促します。アルファベット検証の後、復元バイトは致命的UTF-8デコーダーで解釈され、有効なUnicodeテキストでなければ置換文字ではなくinvalid_inputになります。検証失敗は前払いAPIでは課金されないため、疑わしいトークンの確認は運用者に安価でエンドユーザーにも安全です。
APIの使い方、料金、ワークフロー、実用上の上限
バックエンド・サーバーレス関数・SDKが同じ符号化または復号ステップを残高下で必要とするときは、成功した項目あたり$0.002の前払いKIT APIを使い、エンジンが拒否した検証失敗では残高を消費しません。SDKを出荷する作者はresultをそのままコピーボタンへ写せ、modeとvariantのラベルは九十一記号アルファベットと十三または十四ビットの可変キューだけを知る読者にもOpenAPI例を分かりやすくします。
連携の活用例
高密度でテキスト安全な設定トークン
チケット・チャット・JSON向けに短いUTF-8設定断片をBase64より密に詰め、受信サービスで同じmodeフィールドにより復号します。
レガシーbasE91相互運用
古典的な九十一記号アルファベットを既に期待するツール・アーカイブ・ライブラリと統合するとき、Joachim Henke basE91ペイロードを符号化または復号します。
文書とCIゴールデン検査
encodeとdecodeのフィクスチャを固定し、basE91アルファベットやビットキュー規則がずれたときに文書サンプルと継続的インテグレーション試験がすぐに失敗するようにします。
技術的な質問
basE91エンコーダーは無料ですか?
ブラウザツールはお客様の端末で無料です。API呼び出しは成功した項目あたり$0.002の前払いKIT残高を使い、検証失敗は課金されません。