ANSI a UTF-8 en Notepad ++


25

Tengo un texto codificado en ANSI:

Archivo de texto ANSI

Cuando intenté convertirlo en UTF-8 (usando el menú de Bloc de notas ++ Codificación> UTF-8), obtengo algunos caracteres extraños:

Archivo de texto UTF-8

Pensé que UTF-8 era un superconjunto de ANSI y que posteriormente no tendría tales problemas. ¿Hay alguna forma de evitar la aparición de esos personajes extraños?


No veo lo extraño en la última imagen
phuclv

Me refería a los personajes que no se pueden mostrar. ¿Alguna forma de evitar esto?
user3658425

¿Editaste la pregunta? Creo que veo las imágenes invertidas
phuclv

1
Sí, lo siento, empujé mi última edición justo después de que alguien agregó las imágenes, borrando la adición: si puedes volver a agregarlas, ¡sería genial!
user3658425

Respuestas:


38

UTF-8 no es un juego de caracteres, solo una codificación para Unicode. Los primeros 128 caracteres son iguales a ASCII pero difieren en los 128 bytes altos. Un byte con el conjunto de bits alto (o> = 0x80) es un carácter extendido en ASCII mientras que en UTF-8 indica el byte de inicio de una secuencia de varios bytes. Ese es el caso de 0x93 o 0x94 arriba. Sin embargo, no veo nada extraño en el archivo. Esas son citas inteligentes o citas con diferentes formas para abrir y cerrar citas, que a menudo se ven al usar un editor de texto enriquecido como MS Word

Editar

La pregunta ha sido editada. Creo que es porque has elegido la herramienta incorrecta. Los encodeelementos del menú son para cambiar la codificación si tiene pantallas de caracteres incorrectas. Simplemente trata la misma secuencia de bytes leída del disco como otra codificación. Como ASCII y UTF-8 son diferentes, tendrá una secuencia de bytes UTF-8 mal formada y verá el resultado anterior. Debe elegir convert to UTF-8que cambie todos los bytes de entrada

codificación de bloc de notas

También has confundido ANSI y ASCII. ANSI a menudo se refiere a Windows-1252, que es un conjunto de caracteres utilizado en inglés de Windows y algunos idiomas de Europa occidental. Es un superconjunto de ISO 8859-1, aunque ISO 8859-1 también puede denominarse como ANSI. ISO 8859-1 es también los primeros 256 puntos de código de Unicode, por lo que es un subconjunto de Unicode, pero no es compatible con la codificación UTF-8. ASCII es un conjunto de caracteres de 7 bits y es un subconjunto del ANSI que está codificado por 8 bits, pero a veces también se lo conoce como ANSI, aunque no es muy correcto.

https://en.wikipedia.org/wiki/ANSI_character_set

En general, la relación entre los conjuntos de caracteres es la siguiente

ASCII < ISO 8859-1 < Windows-1252
        ^
        Unicode

Gracias, perdón por estropear charset con codificación. ¿Hay alguna forma de evitar tener esos caracteres no visualizables y tener algunas comillas visualizables?
user3658425

@ user3658425 por favor vea mi edición
phuclv

1
También he editado la información ANSI / ASCII anterior
phuclv

3
Tenga en cuenta que, en general, "UTF-8 sin marca de orden de bytes" es lo que desea. Como muchos otros han dicho en el pasado, "UTF-8 es la única codificación de cadena útil".
Riking

44
@WillihamTotland utf8everywhere.org
phuclv
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.