Cuando intento guardar un archivo de texto con texto que no está en inglés en el Bloc de notas, tengo la opción de elegir entre Unicode , Unicode Big Endian y UTF-8 . ¿Cuál es la diferencia entre estos formatos?
Suponiendo que no quiero ninguna compatibilidad con versiones anteriores (con versiones o aplicaciones de SO anteriores) y no me importa el tamaño del archivo, ¿cuál de estos formatos es mejor?
(Suponga que el texto puede estar en idiomas como chino o japonés, además de otros idiomas).
Nota: De las respuestas y comentarios a continuación parece que en la jerga del Bloc de notas, Unicode es UTF-16 (Little Endian), Unicode Big Endian es UTF-16 (Big Endian) y UTF-8 está bien UTF-8.
Respuestas:
No sé. ¿Qué es mejor: una sierra o un martillo? :-)
Unicode no es UTF
Sin embargo, hay un poco en el artículo que es un poco más relevante para el tema en cuestión:
UTF-32 se centra en la exhaustividad y la representación de longitud fija, utilizando 4 bytes para todos los caracteres. Es la traducción más sencilla, asigna directamente el punto de código Unicode a 4 bytes. Obviamente, no es muy eficiente en tamaño.
UTF-16 es un compromiso, que usa 2 bytes la mayor parte del tiempo, pero se expande a 2 * 2 bytes por carácter para representar ciertos caracteres, aquellos que no están incluidos en el Plano Multilingüe Básico (BMP).
Consulte también El mínimo absoluto que todo desarrollador de software debe saber absolutamente, positivamente sobre los conjuntos de caracteres y Unicode (¡sin excusas!)
fuente
Para los idiomas europeos, UTF-8 es más pequeño. Para las lenguas orientales, la diferencia no es tan clara.
Ambos manejarán todos los posibles caracteres Unicode, por lo que no debería haber diferencia en la compatibilidad.
fuente
Hay más codificaciones de caracteres Unicode de lo que piensas.
UTF 8
La codificación UTF-8 es de ancho variable, que varía de 1 a 4 bytes, con los bits superiores de cada byte reservados como bits de control. Los bits iniciales del primer byte indican el número total de bytes utilizados para ese carácter. El valor escalar del punto de código de un personaje es la concatenación de los bits sin control. En esta tabla,
x
representa los 8 bits más bajos del valor Unicode,y
representa los siguientes 8 bits más altos yz
representa los bits más altos que eso.fuente
"Unicode" es otro término para "UTF-16", que es una codificación del conjunto de caracteres Unicode en dieciséis bits por carácter. UTF-8 lo codifica en ocho bits por carácter.
En ambos casos, cualquier desbordamiento se asigna a otros 16 u ocho bits.
fuente
La única ventaja real con archivos pequeños como archivos de texto es el tamaño del archivo resultante. UTF-8 generalmente produce archivos más pequeños. Pero esta diferencia puede ser menos pronunciada con el texto chino / japonés.
fuente
En una palabra, Unicode es un conjunto de caracteres , mientras que Unicode Big Endian y utf-8 son dos codificaciones , que se utilizan para almacenar caracteres como 01 en una computadora.
fuente