Question

Je suis un peu curieux de savoir pourquoi on voudrait utiliser le codage hexadécimal sur base64. Il me semble que la base 64 est plus efficace. En particulier, pourquoi les bases de données semblent-elles toujours utiliser le codage hexadécimal? Est-ce un problème historique ou est-ce que je manque quelque chose à propos du codage hexadécimal?

Était-ce utile?

La solution

Vous devez être un vrai geek pour lire BASE64 à l'écran.

Dans Oracle , lorsque j'exécute HEXTORAW , je peux avoir une idée du contenu d'un champ RAW , mais je ne pouvais pas le faire. BASE64 .

Par exemple, quand je vois beaucoup de 0x3F , je sais qu'il y a quelque chose avec le codage.

Et en interne, ce ne sont que des octets binaires, il n’est pas nécessaire de les encoder, mais de les montrer à une personne de l’autre côté de l’écran.

Autres conseils

C’est un bon compromis entre utilisation efficace de l’espace et lisibilité. Les motifs de bits deviennent très apparents dans l'hex, alors que les autres bases ne sont pas aussi claires.

qui est plus facile à lire, 0x8080 ou 32896? Je dirais que la valeur hexadécimale est.

La propriété nice de chaque chiffre hexadécimal est égale à un quartet (donc chaque paire est égale à un octet).

Il est beaucoup plus facile de comprendre l’hex dans votre tête que la base 64.

En ce qui concerne la base de données, n'oubliez pas qu'il existe une différence entre le mode d'affichage des données et leur stockage. Il est très probable que les données soient simplement affichées au format hexadécimal.

Base64 ne fonctionne pas si vous souhaitez utiliser les valeurs résultantes comme noms de fichiers sous Windows, car base64 utilise des lettres en majuscule et en minuscule. Je suis sûr qu'il y a d'autres moments où il ne peut pas être utilisé pour des raisons similaires.

Acceptez les autres réponses concernant la lisibilité: les chiffres hexadécimaux s'alignent bien sur les octets de 8 bits, tandis que les caractères "base64" de base64 pas, et un chiffre peut contenir des parties de deux octets.

Dans le cas du stockage de chaînes (avec un codage "potentiellement" sûr pour XML), vous pourriez gagner encore en efficacité avec ASCII 85 car il s'agit d'un 5/4 bloat au lieu de 4/3 pour base64.

Mais il est encore plus difficile de "lire" puis base64. Et peu d’applications le supportent aussi souvent que vous devez écrire vos propres classes / fonctions pour coder et décoder.

J'imagine que votre base de données stocke réellement les données sous forme binaire, mais l'éditeur de requêtes l'affichera en utilisant un codage hexadécimal. C’est ce que fera l’analyseur de requêtes SQL Server.

Je suppose que ce n’est qu’une question de préférence personnelle ... Hex est de loin plus facile à lire que quelque chose en Base32 ou Base64

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top