Mode d’emploi
- Choisissez Encoder pour transformer du texte ou des octets en basE91, ou Décoder pour reconvertir du basE91 en données.
- Saisissez ou collez votre entrée, ou ouvrez un fichier. Passez l’entrée en Hexa pour des octets bruts.
- Le résultat se met à jour pendant la saisie. Au décodage, choisissez la sortie Texte ou Hexa.
- Copiez le résultat ou téléchargez-le sous forme de fichier.
Qu’est-ce que basE91 ?
basE91 est un encodage binaire-texte conçu par Joachim Henke. Il utilise 91 des 95 caractères ASCII imprimables : tous sauf l’espace, l’apostrophe ', le trait d’union - et la barre oblique inverse \.
Il ne travaille pas sur des blocs d’octets de taille fixe. L’encodeur accumule les bits d’entrée dans un tampon et en prélève 13 à la fois. Si la valeur sur 13 bits est supérieure à 88, elle est écrite avec deux caractères. Si elle est inférieure ou égale à 88, un 14e bit est prélevé en plus, ce qui tient encore puisque deux caractères en base 91 peuvent exprimer 91 × 91 = 8281 valeurs différentes. Chaque groupe de 13 ou 14 bits devient donc exactement 2 caractères.
Il en résulte un surcoût d’environ 23 % au maximum, qui descend jusqu’à environ 14 % pour des données comportant de longues suites d’octets nuls. Les données aléatoires ou compressées se situent près de la limite haute.
basE91 face aux autres encodages
| Encodage | Caractères | Taille de la sortie |
|---|---|---|
| Hexadécimal | 16 | 2 × l’entrée |
| Base58 | 58 | environ 1,37 × l’entrée |
| Base64 | 64 | 1,33 × l’entrée |
| Base85 / Ascii85 | 85 | 1,25 × l’entrée |
| basE91 | 91 | environ 1,14 à 1,23 × l’entrée |
Pour comparer les longueurs de sortie réelles avec vos propres données, saisissez-les dans Tous les encodages.
Points à retenir
- Échappement. L’alphabet contient le guillemet double
", qui doit être échappé en JSON et dans la plupart des chaînes littérales, ainsi que<,>et&, qui doivent être échappés en HTML et en XML. basE91 n’est pas compatible URL. - Décodez la chaîne entière. Comme les bits chevauchent les limites entre caractères, un fragment extrait du milieu d’une chaîne basE91 ne peut pas être décodé seul.
- Prise en charge. basE91 n’est pas une norme de l’IETF. L’auteur publie des implémentations de référence en C et dans d’autres langages, et des portages existent pour la plupart des plateformes, comme le paquet
base91pour Python.
Spécifications
| Alphabet | 91 caractères ASCII imprimables |
|---|---|
| Taille de sortie | Environ 123 % |
| Remplissage | Aucun |
| Norme | basE91 (Joachim Henke) |
| Sensible à la casse | Oui |
Exemples
| Entrée (UTF-8) | Sortie |
|---|---|
Hello, World! | >OwJh>}AQ;r@@Y?F |
Base64.is | xD7gXm^?t#5 |
你好 | I_5k7aPE |
Questions fréquentes
basE91 est-il plus compact que Base64 ?
Oui. Base64 ajoute toujours 33 %, alors que basE91 ajoute au maximum environ 23 %, et moins encore pour des données contenant beaucoup d’octets nuls. Pour un fichier de 1 Mo, cela représente environ 100 Ko d’économie.
Quels caractères basE91 utilise-t-il ?
A-Z et a-z, les chiffres 0-9 et les symboles !#$%&()*+,./:;<=>?@[]^_`{|}~". L’espace, l’apostrophe, le trait d’union et la barre oblique inverse ne sont pas utilisés.Pourquoi écrit-on basE91 ?
C’est l’orthographe choisie par son auteur. basE91 et Base91 désignent le même encodage, et cette page suit l’algorithme original.
Les espaces et sauts de ligne gênent-ils le décodage ?
Non. Les espaces et les sauts de ligne ne font pas partie de l’alphabet : le décodeur de cette page les ignore. Vous pouvez coller directement du texte basE91 réparti sur plusieurs lignes.