Dans mon application Web, un modèle utilise l'identificateur généré par un outil UUID. Comme je veux que cet identifiant fasse partie de l'URL, j'étudie des méthodes pour raccourcir cette chaîne d'UUID. Comme il est actuellement en format hexadécimal, j'ai pensé à le convertir en ASCII. Comme il ne devrait ensuite contenir que des caractères normaux et un nombre ([\ d \ w] +), la conversion hexadécimale ASCII normale ne semble pas fonctionner (caractères moche). Connaissez-vous un algorithme ou un outil (Ruby) pour le faire?Rendre l'UUID plus court (conversion hexadécimal en ASCII)
0
A
Répondre
3
Un UUID est un nombre binaire de 128 bits, à la fin. Si vous le représentez en tant que 16 octets non codés, il n'y a aucun moyen d'éviter les "caractères laids". Ce que vous voulez probablement faire est de le décoder à partir de l'hexagone, puis de l'encoder en utilisant base64. Notez que l'encodage base64 utilise les caractères +/= ainsi que A-Za-z0-9, vous voudrez faire un peu de post-traitement (je suggère s/+/-/g; s/\//_/g; s/==$//
- un UUID base64ed se terminera toujours par deux signes égaux)
Questions connexes
- 1. de conversion de hexadécimal en hexadécimal réelle
- 2. Comment convertir en hexadécimal ASCII en JavaScript?
- 3. Comment rendre un Makefile plus court?
- 4. Comment le rendre plus court (Pythonic)?
- 5. conversion d'un ascii en int
- 6. Question sur la conversion décimal en binaire en hexadécimal
- 7. Conversion de UTF8 en ASCII
- 8. Comment convertir des caractères ASCII spéciaux en hexadécimal en Perl
- 9. Conversion du format hexadécimal en chaînes
- 10. Conversion Python de chaîne binaire en hexadécimal
- 11. Convertir code ASCII en hexadécimal dans un script shell Unix
- 12. Conversion d'un caractère Unicode en caractère ASCII (.NET) le plus proche (le plus similaire)
- 13. Conversion de décimal en caractère ASCII
- 14. Conversion PHP UTF-16 en ASCII
- 15. binaire à la conversion hexadécimal dans tsql
- 16. jQuery: Y a-t-il un moyen de rendre cela plus court et plus élégant?
- 17. comment rendre vim reconnaître les caractères CJK et les rendre plus grand que ASCII?
- 18. comment rendre ce code court et optimal
- 19. Conversion de nombre entier de lisp en hexadécimal
- 20. Conversion de bits de chaîne en octets ou hexadécimal
- 21. Conversion d'une valeur de couleur RVB en hexadécimal
- 22. devoirs javascript sur la conversion décimale en hexadécimal
- 23. comment convertir hexadécimal en RGB
- 24. Conversion à court de char, résultats impairs?
- 25. conversion PDF en format ASCII - quel est l'état de l'art?
- 26. Conversion manuelle entre caractères ASCII et .NET
- 27. Conversion de fichiers ASCII source en fichiers JPEG
- 28. WP7 Conversion ASCII chaîne à une image
- 29. Conversion de caractères français en ASCII sur un formulaire submit
- 30. Conversion UTF-8 à Ascii (8 bits) codée en pourcentage
Fait amusant: un uuid encodé en base64 a une longueur de 22 caractères + deux caractères de remplissage ('=='). La représentation hexadécimale standard d'un uuid est de 32 caractères + 4 '-' caractères. – Seth
Vous pouvez enregistrer deux caractères supplémentaires avec l'encodage base85 modifié depuis http://tools.ietf.org/html/rfc1924 (les adresses IPv6 sont également 128 bits, commodément); son jeu de caractères n'est pas entièrement sûr pour les URL, mais je pense que vous pourriez corriger cela si vous le vouliez vraiment. – zwol