Pregunta

Antes de que alguien me recomiende hacer una búsqueda en Google sobre esto, lo he hecho. Solo necesito un poco más de claridad sobre qué páginas de códigos y codificaciones.

Si uso la codificación UTF8 y uso una página de códigos en italiano y luego una página de códigos en francés, ¿significa esto que obtendré caracteres diferentes aunque los bytes no hayan cambiado?

¿Fue útil?

Solución

Joel tiene un buen resumen de esto:
http://www.joelonsoftware.com/articles/Unicode.html

Y no. Si entiendo tu pregunta correctamente, no significa eso. Cuando convierte UTF-8 a una página de códigos específica, es posible que solo se conviertan algunos de los caracteres. Lo que les sucede a los que no se convierten depende de cómo se llame la conversión. Un posible resultado es que los caracteres que no se pudieron asignar a la página de códigos se convertirían en caracteres de signo de interrogación.

Otros consejos

Una codificación es simplemente un mapeo entre valores numéricos y "caracteres".

US-ASCII asigna el número 65 a la letra A, 32 a un espacio y 49 al dígito "1". (Cómo se representan estas cosas es otro asunto). De hecho, ¡UTF-8 hace lo mismo! Pero hay otros valores que UTF-8 trata de manera diferente a ASCII. Es una codificación de longitud variable, es decir, un carácter puede codificarse con 1, 2, 3 o 4 bytes; los caracteres comunes generalmente consumen menos bytes.

Los archivos de texto sin formato, incluidas las páginas web, se almacenan y transmiten como secuencias de bytes. Se supone que estos bytes representan algo textual. Las aplicaciones de software (como editores de texto y navegadores web) son responsables de mostrar la información dentro de estos archivos en la pantalla. Por lo general, hacen uso de la biblioteca o las funciones del sistema operativo.

¡Si el software asume una codificación diferente al software que creó el archivo, se pueden mostrar los caracteres incorrectos!

Tenga en cuenta que es posible convertir entre diferentes codificaciones; sin embargo, si convierte a una codificación que no contiene un determinado carácter, el software debe elegir qué usar en su lugar. Esta conversión a menudo ocurre de manera transparente (cuando guarda un archivo con una determinada codificación, lo que haya escrito debe cambiarse a esa codificación).

UTF-8 incluye todos los caracteres de su página de códigos en francés e italiano, pero las páginas de códigos específicas del idioma no incluyen todos los demás caracteres.

Por lo tanto, puede tomar la entrada de cada idioma y convertirla a UTF-8 para almacenamiento, pero no puede estar seguro de que obtendrá los caracteres correctos si toma la entrada italiana y la muestra en francés.

Usa UTF-8 todo el tiempo si puedes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top