Tengo un texto codificado en ANSI:
Cuando intenté convertirlo en UTF-8 (usando el menú de Bloc de notas ++ Codificación> UTF-8), obtengo algunos caracteres extraños:
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?
notepad++
character-encoding
utf-8
ansi
usuario3658425
fuente
fuente
Respuestas:
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
encode
elementos 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 elegirconvert to UTF-8
que cambie todos los bytes de entradaTambié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
fuente