universally online genuuid generar genera encoding guid

encoding - online - ¿Cuántos caracteres hay en un GUID?



uuid versions (4)

TL; DR: ninguno.

Como dijo Adam Davis, el estilo de Microsoft es la codificación HEX (con llaves y guiones para que sea más legible) que se puede mostrar utilizando un subconjunto de caracteres ASCII (0-9 y AF), pero esto no es específicamente codificación ASCII.

Supongo que es importante recordar que el estilo microsoft de mostrar los GUID es solo una representación de un GUID, que en realidad es un valor integral de 16 bytes (como dijo Micheal Trausch).

También puede presentarlo de formas diferentes y más compactas convirtiendo los bytes en un juego de caracteres diferente (como ASCII).

Teóricamente, puede mostrar cada byte como un carácter ASCII extendido (255 caracteres), lo que le permitiría guardar un GUID como una cadena de 16 caracteres de longitud.

Sin embargo, no sería muy legible porque incluiría caracteres en espacios en blanco (CR, espacio, tabulación, etc.) y otros caracteres especiales, por lo que esto solo tendría sentido si desea guardar eficientemente un GUID en un formato de caracteres no legible por humanos , por ejemplo, en una base de datos que no admite de forma nativa GUID o una rápida coincidencia de pequeños valores binarios: http://en.wikipedia.org/wiki/Extended_ASCII

En mi humilde opinión, la forma más legible de mostrar un GUID más compacto sería usar la codificación Base64, que le permite guardarlo en una cadena con una longitud de 22 caracteres, y lo haría lucir así:

7v26IM9P2kmVepd7ZxuXyQ==

Pero como afirma Jeff Atwood en su sitio, también puede insertar un GUID en una cadena codificada en ASCII85 con 20 caracteres:

[Rb*hlkkXVW+q4s(YSF0

Para obtener más inspiración, consulte: http://www.codinghorror.com/blog/2005/10/equipping-our-ascii-armor.html

Usando la codificación ASCII, ¿cuántos caracteres hay en un GUID?

Estoy interesado en el estilo de Microsoft, que incluye los corchetes y guiones.


Como Adam mencionó a partir de la cita de MSDN, los UUID son valores de 128 bits. Esto significa que toman 16 bytes de RAM para contener un valor. Una representación de texto tomará 32 bytes (dos bytes para cada byte), más los 4 guiones, más los dos corchetes si desea incluirlos; esto equivale a 38 bytes.

Solo tenga en cuenta que si está exponiendo los UUID a los usuarios de su software, pueden proporcionar el UUID con o sin los corchetes. Si está almacenando el valor en cualquier lugar, es mejor almacenarlo como la representación binaria de 16 bytes. Si está interoperando con otras implementaciones de UUID, puede utilizar el formato de texto básico para la interoperabilidad, ya que las diferentes implementaciones hacen cosas diferentes al orden de los bytes cuando se almacena un valor de UUID binario.


Desde MSDN :

Un GUID es un valor de 128 bits que consiste en un grupo de 8 dígitos hexadecimales, seguidos por tres grupos de 4 dígitos hexadecimales cada uno, seguidos por un grupo de 12 dígitos hexadecimales. El siguiente ejemplo de GUID muestra las agrupaciones de dígitos hexadecimales en un GUID: 6B29FC40-CA47-1067-B31D-00DD010662DA

De la Wikipedia :

A menudo se agregan llaves para encerrar el formato anterior, como tal:

{3F2504E0-4F89-11D3-9A0C-0305E82C3301}

Así que un total de 38 caracteres en la codificación hexadecimal típica con llaves.

-Adán


La duración depende de la codificación. Puede obtener las codificaciones y la duración estándar con este fragmento:

public void Main() { var guid = Guid.Empty; Write(guid, "N"); // 32 characters Write(guid, "D"); // 36 characters (default) Write(guid, "B"); // 38 characters Write(guid, "P"); // 38 characters Write(guid, "X"); // 68 characters } private void Write(Guid guid, string format) { var guidString = guid.ToString(format); Console.WriteLine("{0}: {1} ({2} characters)", format, guidString, guidString.Length); }

vea el método Guid.ToString para más detalles: