Encodeur et décodeur Base94
« Hello, world! » devient /P|?l:+>Nq\sr<+r en Base94, qui utilise tous les caractères ASCII imprimables de ! à ~ sauf l'espace : chaque caractère porte plus d'information qu'en Base64 sans quitter l'ASCII classique. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hello, world!
- Résultat
- /P|?l:+>Nq\sr<+r
- Mode de calcul
- Encode
- Variante
- base94
- Octets
- 13
L’encodage Base94 mappe des données binaires sur chaque caractère ASCII imprimable hors espace, du point d’exclamation au tilde—quatre-vingt-quatorze symboles—de sorte que chaque caractère porte plus d’information que l’alphabet de soixante-quatre symboles du Base64 tout en restant dans la plage imprimable classique des terminaux, du chat et des fichiers de configuration en texte brut. On recherche un encodeur Base94 ou un décodeur Base94 pour une densité maximale sans quitter l’ASCII, une forme sûre au collage plus dense que le Base64 pour de courts jetons, ou un protocole qui suppose déjà l’ensemble imprimable complet hors espace. L’encodage est déterministe : UTF-8 puis conversion base deux cent cinquante-six vers base quatre-vingt-quatorze avec grands entiers ; le décodage refuse espaces, caractères de contrôle et tout symbole hors alphabet au lieu d’inventer des remplacements silencieux.
Encoder du texte UTF-8 en Base94 pour une densité imprimable maximale
Le moteur interprète la chaîne comme texte Unicode, la sérialise en octets UTF-8 puis convertit ces octets de la base deux cent cinquante-six vers la base quatre-vingt-quatorze par arithmétique de grands entiers. Chaque reste indexe l’alphabet fixe allant du point d’exclamation au tilde—exactement quatre-vingt-quatorze caractères ASCII imprimables, sans espace ni codes de contrôle—si bien que le résultat est toujours une chaîne dense et sûre au collage pour les canaux qui acceptent tout caractère imprimable hors espace.
Texte multilingue, emoji et ponctuation s’encodent correctement car le chemin est UTF-8 complet, non un raccourci Latin-1. La réponse inclut toujours result avec la chaîne Base94, mode égal à encode, variant égal à base94, bytes égal à la longueur UTF-8 avant encodage, et alphabet égal à la chaîne complète de quatre-vingt-quatorze caractères pour que vous puissiez affirmer l’alphabet dans les tests. Des entrées identiques produisent toujours des sorties identiques car l’algorithme est de l’arithmétique pure sans réseau, sans sel aléatoire et sans horloge murale.
Utilisez ce chemin dès que vous avez besoin d’un empaquetage sûr en texte plus dense que le Base64 pour de courts jetons, des fragments de configuration, des échantillons de documentation ou tout pipeline qui tolère déjà l’ensemble ASCII imprimable complet hors espace.
Décoder le Base94 en texte et gérer les caractères invalides
Fixez mode à decode et placez une chaîne Base94 dans text. L’alphabet est strict : seuls les quatre-vingt-quatorze caractères du point d’exclamation au tilde sont acceptés. Les points d’exclamation en tête se décodent en octets zéro en tête, en cohérence avec le chemin d’encodage, de sorte que les allers-retours qui préservent la longueur restent stables.
Un décodage réussi renvoie result comme chaîne récupérée, mode decode, variant base94, bytes comme longueur UTF-8 décodée, et alphabet en symétrie avec les réponses encode. Préférez cette capacité lorsque l’intention de recherche est littéralement encodeur base94, décodeur base94 ou encodage base ascii imprimable pour du contenu lisible ; Base64 standard, Base64 URL-safe, Base58 et Ascii85 restent des outils distincts avec leurs propres pages et alphabets.
Questions fréquentes
Comment encoder du texte en Base94 ?
Le champ result de la réponse contient la chaîne Base94 et bytes est la longueur UTF-8.
Comment décoder le Base94 en texte ?
Fixez mode à decode et placez la chaîne Base94 dans text. Seuls les 94 symboles ASCII imprimables de ! à ~ sont acceptés. Le champ result est le texte UTF-8 récupéré.
Que se passe-t-il avec un caractère Base94 invalide ?
Les caractères hors alphabet (y compris l’espace et les codes de contrôle) sont refusés avec un message qui nomme le caractère et l’index ; les échecs de validation ne sont pas facturés.
En quoi le Base94 diffère-t-il du Base64 ?
Base94 utilise les 94 caractères ASCII imprimables hors espace (!–~) pour un empaquetage plus dense que l’alphabet de 64 symboles du Base64. Cet outil n’est ni Base64, ni Base58, ni Ascii85—ceux-ci ont des pages et alphabets distincts.
Pourquoi mon résultat Base94 commence-t-il par des points d'exclamation ?
Le point d'exclamation est le premier symbole de l'alphabet, il vaut zéro. Les octets nuls au début de vos données deviennent donc des points d'exclamation en tête, et le décodage les retransforme en octets nuls pour retrouver la longueur exacte.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
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)Exemple de requête
{
"text": "Hello, world!"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base94",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Cette capacité fait ce travail clairement : choisissez le mode encode ou decode, collez un champ texte et recevez la chaîne transformée plus la longueur en octets et l’alphabet fixe, ou une erreur claire invalid_input lorsque la charge à décoder contient un caractère hors de l’ensemble de quatre-vingt-quatorze symboles.
Encoder du texte UTF-8 en Base94 pour une densité imprimable maximale
Envoyez un corps JSON avec le champ chaîne obligatoire text égal au message en clair que vous souhaitez représenter en Base94, et laissez mode à sa valeur par défaut encode ou fixez mode à encode explicitement. Les octets zéro en tête du payload UTF-8 se mappent sur des points d’exclamation en tête (indice zéro de l’alphabet), en parallèle de la convention du un initial du Base58, de sorte que les allers-retours préservent la longueur et que les charges vides restent vides. Les alias optionnels input, value et s sont acceptés pour le même champ lorsque vous générez des clients à partir d’anciens noms de formulaire.
Décoder le Base94 en texte et gérer les caractères invalides
Tout autre caractère—y compris espace, tabulation, saut de ligne, codes de contrôle ou octets hors plage imprimable—provoque un échec immédiat invalid_input avec un message qui nomme le caractère Base94 invalide et son index, afin que les clients corrigent le collage au lieu de recevoir de l’Unicode corrompu. Après validation de l’alphabet, les octets récupérés sont décodés en UTF-8 avec un décodeur fatal : si la charge n’est pas du texte Unicode valide, vous obtenez invalid_input au lieu de caractères de remplacement qui corrompraient les affichages en aval. Les échecs de validation ne sont pas facturés sur l’API prépayée, de sorte que sonder un jeton suspect reste bon marché pour les opérateurs et sûr pour les utilisateurs finaux.
Usage API, tarification, flux et limites pratiques
Appelez l’encodeur Base94 gratuit dans le navigateur pour des démonstrations de cours, des playbooks de support, des comparaisons de densité face au Base64 et des conversions ponctuelles sans installer de bibliothèques sur mesure. Un flux typique encode une courte valeur de configuration pour stockage dans un ticket texte seul qui autorise tout ASCII imprimable hors espace, l’envoie par e-mail ou chat, puis la décode sur le service récepteur avec mode decode en affirmant que bytes correspond à la longueur d’origine. Associez ce point de terminaison à un outil Base64 ou Base85 lorsqu’un système partenaire ne parle que ces alphabets, mais gardez les étapes sur des pages distinctes pour que chaque page corresponde à une seule intention de recherche—densité imprimable maximale Base94 versus ubiquité Base64 ou flux Ascii85 Adobe. Utilisez l’API prépayée KIT lorsqu’un backend, une fonction serverless ou un SDK a besoin de la même étape d’encodage ou de décodage sous solde à $0.002 par élément réussi ; une validation échouée ne consomme jamais de solde une fois que le moteur rejette la requête. Les auteurs qui livrent des SDK peuvent mapper le champ result directement sur un bouton copier, tandis que les libellés mode, variant et alphabet rendent les exemples OpenAPI explicites pour les lecteurs qui ont besoin de l’ensemble complet de quatre-vingt-quatorze caractères imprimables.
Cas d'intégration
Jetons sûrs en texte à densité maximale
Empaquetez de courts secrets UTF-8 ou des fragments de configuration plus densément que le Base64 pour tickets, chat et JSON qui acceptent tout ASCII imprimable hors espace, puis décodez sur le service récepteur avec le même champ mode.
Benchmarks de densité face au Base64 et au Base85
Comparez la longueur encodée du même payload en Base94, Base64 et Ascii85 lors du choix d’une représentation sûre en texte pour des échantillons de documentation ou des notes de conception de protocole.
Documentation et golden de CI
Épinglez des fixtures encode et decode pour que les échantillons de documentation et les tests d’intégration continue échouent vite si l’alphabet Base94 ou les règles des zéros en tête dérivent.
Questions techniques
L’encodeur Base94 est-il gratuit ?
L’outil navigateur s’exécute gratuitement sur votre appareil. Les appels API utilisent le solde prépayé KIT à $0.002 par élément réussi ; les échecs de validation ne sont pas facturés.