2010-07-16 6 views
0

J'ai besoin d'encoder des données (texte) afin qu'elles puissent être facilement transmises par l'utilisateur par téléphone.
Le texte contient des caractères aléatoires et ne dépasse normalement pas 100 caractères. Exemple:Coder les données pour un passage facile sur le téléphone

"37-b, kA.sZ: Bb9--10.y < §"

J'aimerais encoder ce texte en forme lisible plus humain afin qu'il puisse facilement être passé par téléphone.
Base36 produit un texte qui peut facilement être transmis par téléphone, mais je ne vois pas comment encoder/décoder correctement.
Des idées ou des alternatives?

(plate-forme .NET 3.5 SP1)

Répondre

1

base 36 sons comme un bon choix (lors de l'utilisation des symboles az et 0-9, il est le plus grand espace de caractères, qui peuvent être facilement transmis par téléphone) . Je vous suggère de faire la sortie contenir des blocs de 6 ou 8 caractères, pour le rendre plus facile à lire. Aussi; pensez à ajouter une somme de contrôle à la fin, afin de pouvoir vérifier qu'il n'y a pas d'erreurs dans les données. 100 caractères dans cet encodage ne sera toujours pas facile à lire par téléphone et à faire les choses correctement la première fois. Avez-vous envisagé un autre mécanisme de livraison? SMS (SMS)?

Sur Wikipedia, il existe un exemple d'encodage Base36 en Python - ne devrait pas être trop difficile à convertir en C#.

+0

Ces exemples convertissent toujours des nombres en Base36. Je dois cependant encoder une valeur de chaîne (voir l'exemple en question). Connaissez-vous des lignes directrices sur la meilleure façon de procéder ou dois-je trouver ma propre solution? Je pourrais convertir la chaîne en un tableau d'octets et encoder celui-ci, mais cela a des problèmes lors du décodage car tous les caractères n'ont pas la même longueur en représentation numérique. – Marc

Questions connexes