Diferencias de formato Unicode, UTF, ASCII, ANSI


¿Cuál es la diferencia entre el Unicode, UTF8, UTF7, UTF16, UTF32, ASCII, y ANSI codificaciones?

¿De qué manera son útiles para los programadores?

Author: Hakam Fostok, 2009-03-31

2 answers

Bajando su lista:

  • "Unicode" no es una codificación, aunque desafortunadamente, mucha documentación la usa imprecisamente para referirse a cualquier codificación Unicode que ese sistema particular use por defecto. En Windows y Java, esto a menudo significa UTF-16; en muchos otros lugares, significa UTF-8. Correctamente, Unicode se refiere al conjunto de caracteres abstractos en sí, no a ninguna codificación en particular.
  • UTF-16 : 2 bytes por "unidad de código". Este es el formato nativo de cadenas en. NET, y generalmente en Windows y Java. Los valores fuera del Plano Multilingüe Básico (BMP) se codifican como pares sustitutos. (Estos son relativamente rara vez utilizados - que es un buen trabajo, ya que muy pocos desarrolladores los hacen bien, sospecho. Dudo mucho que lo haga.)
  • UTF-8 : Codificación de longitud variable, 1-4 bytes por punto de código. Los valores ASCII se codifican como ASCII usando 1 byte.
  • UTF-7 : Normalmente se usa para la codificación de correo. Lo más probable es que si usted piensa lo necesitas y no estás haciendo correo, estás equivocado. (Esa es solo mi experiencia de personas que publican en grupos de noticias, etc.-correo exterior, realmente no es ampliamente utilizado en absoluto.)
  • UTF-32: Codificación de ancho fijo utilizando 4 bytes por punto de código. Esto no es muy eficiente, pero hace la vida más fácil fuera del BMP. Tengo una clase.NET Utf32String como parte de mi biblioteca MiscUtil, si alguna vez la quieres. (No ha sido probado muy a fondo, eso sí.)
  • ASCII : Single codificación de bytes solo utilizando los 7 bits inferiores. (Unicode code points 0-127.) Sin acentos, etc.
  • ANSI: No hay una codificación ANSI fija, hay muchas. Por lo general, cuando la gente dice "ANSI" significa "la configuración regional/página de código predeterminada para mi sistema" que se obtiene a través de Codificación.Por defecto, y es a menudo Windows-1252 pero puede ser otras configuraciones regionales.

Hay más en mi página Unicode y consejos para depurar problemas Unicode.

El otro el gran recurso de código es unicode.org que contiene más información de la que nunca podrá trabajar a través de - posiblemente el bit más útil es el gráficos de código.

 410
Author: Jon Skeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-03 22:02:07

Algo de lectura para empezar a codificar caracteres: Joel en Software: El Mínimo Absoluto Cada Desarrollador de Software Absolutamente, Positivamente Debe Saber Sobre Unicode y Conjuntos de Caracteres (Sin Excusas!)

Por cierto - ASP.NET no tiene nada que ver. Las codificaciones son universales.

 56
Author: Tomalak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-31 06:10:06