Type de caractère généré par UUID
- Ne java.util.UUID génère des caractères spéciaux?
- Quels sont le type de chaque personnage (ex - Majuscules, minuscules, chiffres) générés par les UUID.
source d'informationauteur minil
Vous devez vous connecter pour publier un commentaire.
UUID ≠ Texte
Pour clarifier, une UUID est en fait une valeur 128 bitspas de texte ou de chiffres. Vous pourriez penser à eux comme à 128 bits entiers non signés.
Chaîne hexadécimale de
Les humains ne font pas bien la lecture et l'écriture de 128 bits 128
1
et0
caractères. Quand un UUID doit être écrite à la consommation humaine, nous utilisons un Hexadécimal (chiffres0
-9
et des lettresa
-f
) de la chaîne. Nous utilisons donc des 32 caractères hexadécimaux avec 4 traits d'union pour représenter ces 128 bits dans un total de 36 caractères. Par exemple:Aucun Des Caractères "Spéciaux"
Comme pour les "caractères spéciaux" mentionné dans la Question, vous ne verrez que ces 23 caractères possibles dans un hex-string représentation d'un UUID:
Minuscules Requis Par La Spec
La dernière international spec daté 2008-08 états (l'emphase est mienne):
Violations De La Commune
Toutefois, Microsoft, Apple et d'autres, souvent violent les minuscules règle. À un moment, Microsoft a publié un logiciel qui a généré cas mixte (utilisant à la fois des majuscules et minuscules), apparemment involontaire fonctionnalité.
Alors faites comme la spec dit:
La documentation de Java pour le
UUID
de la classe detoString
méthode de documents dans BNF que la majuscule est autorisé lors de la génération d'une chaîne de caractères, en contradiction avec l'UUID de la spécification de la norme. Cependant, le comportement réel de la classe et de sestoString
méthode dans le Oracle mise en oeuvre pour Java 8 est correct, avec des minuscules pour la production, mais de tolérer, en majuscules ou en minuscules pour l'entrée.Entrée en soit inférieur/majuscules:
Sortie de minuscules uniquement:
Voir ce code à exécuter en direct en IdeOne.com.
Exemple De Valeurs
Vous pouvez voir quelques exemples de l'UUID de valeurs en utilisant l'un des nombreux sites web qui génèrent des valeurs. Par exemple:
Ou de l'utilisation d'un outil en ligne de commande. Presque tous les système d'exploitation est livré avec un tel outil. Sur Mac OS X, lancez Le Terminal.app et le type
uuidgen
.La javadoc de java.util.UUID des liens vers RFC 4122 qui dit
Donc non, il ne générera pas de caractères spéciaux.
Un UUID ne consiste pas en des caractères, sauf si vous demandez à être convertie en une chaîne de caractères. À ce point, il sera transformé en une chaîne composée de caractères hexadécimaux et des traits d'union, comme décrit par le doc de
UUID.toString()
.(Il n'est pas documenté que les chiffres hexadécimaux sera en majuscule ou en minuscule.)