texto sublime saber online detectar como codificacion cambiar archivo encoding utf-8 character-encoding text-files codepages

encoding - sublime - detectar codificacion de un texto



¿Cómo corrijo la codificación de caracteres de un archivo? (12)

Cuando ve secuencias de caracteres como ç y à ©, generalmente es una indicación de que un archivo UTF-8 ha sido abierto por un programa que lo lee como ANSI (o similar). Caracteres Unicode como estos:

U + 00C2 Letra mayúscula latina A con circunflejo
U + 00C3 letra mayúscula latina A con tilde
U + 0082 Pausa permitida aquí
U + 0083 No hay descanso aquí

tienden a aparecer en el texto ANSI debido a la estrategia de bytes variables que utiliza UTF-8. Esta estrategia se explica muy bien aquí .

La ventaja para usted es que la apariencia de estos caracteres impares hace que sea relativamente fácil encontrar, y así reemplazar, instancias de conversión incorrecta.

Creo que, dado que ANSI siempre usa 1 byte por carácter, puede manejar esta situación con una simple operación de búsqueda y reemplazo. O más convenientemente, con un programa que incluye un mapeo de tablas entre las secuencias ofensivas y los caracteres deseados, como estos:

"->" # debe ser una cita doble de apertura
¿? -> "# debe ser una cita de cierre doble rizado

Cualquier texto dado, suponiendo que esté en inglés, tendrá un número relativamente pequeño de diferentes tipos de sustituciones.

Espero que ayude.

Tengo un archivo de texto con codificación ANSI que no debería haber sido codificado como ANSI ya que había caracteres acentuados que ANSI no admite. Prefiero trabajar con UTF-8.

¿Se pueden decodificar los datos correctamente o se pierden en la transcodificación?

¿Qué herramientas podría usar?

Aquí hay una muestra de lo que tengo:

ç é

Puedo decir por contexto (café debería ser café) que estos deberían ser estos dos caracteres:

ç é


EDITAR: una posibilidad simple de eliminar antes de entrar en soluciones más complicadas: ¿ha intentado establecer el juego de caracteres en utf8 en el editor de texto en el que está leyendo el archivo? Esto podría ser solo el caso de alguien enviándole un archivo utf8 que está leyendo en un editor configurado para decir cp1252.

Simplemente tomando los dos ejemplos, este es un caso de lectura de utf8 a través de la lente de una codificación de un solo byte, probablemente una de iso-8859-1, iso-8859-15 o cp1252. Si puede publicar ejemplos de otros personajes problemáticos, debería ser posible reducirlo más.

Como la inspección visual de los caracteres puede ser engañosa, también deberá observar los bytes subyacentes: el § que ve en la pantalla podría ser 0xa7 o 0xc2a7, y eso determinará el tipo de conversión de conjunto de caracteres que tiene que hacer.

¿Puede suponer que todos sus datos se han distorsionado exactamente de la misma manera? Que provienen de la misma fuente y han pasado por la misma secuencia de transformaciones, por lo que, por ejemplo, no hay una sola é en el texto, siempre UN§? Si es así, el problema se puede resolver con una secuencia de conversiones de juegos de caracteres. Si puede ser más específico sobre el entorno en el que se encuentra y la base de datos que está utilizando, es posible que alguien aquí le indique cómo realizar la conversión adecuada.

De lo contrario, si los caracteres problemáticos solo aparecen en algunos lugares de sus datos, tendrá que tomarlos instancia por instancia, basándose en suposiciones como "ningún autor tiene la intención de poner ç en su texto, de modo que cada vez que vea it, reemplace por ç ". La última opción es más arriesgada, en primer lugar porque esas suposiciones sobre las intenciones de los autores pueden ser erróneas, en segundo lugar porque tendrá que detectar a cada personaje problemático usted mismo, lo que podría ser imposible si hay demasiado texto para inspeccionar visualmente o si está escrito en un idioma o sistema de escritura que sea extraño para usted.


Hay programas que intentan detectar la codificación de un archivo como chardet . Entonces podrías convertirlo a una codificación diferente usando iconv. Pero eso requiere que el texto original esté intacto y no se pierda información (por ejemplo, eliminando acentos o letras con acentos enteros).


Si ve signos de interrogación en el archivo o si los acentos ya están perdidos, regresar a utf8 no ayudará a su causa. por ejemplo, si el café se convirtió en café, cambiar la codificación por sí solo no ayudará (y necesitará datos originales).

¿Puedes pegar aquí algún texto que nos ayude a responder con seguridad?



Encontré una forma simple de detectar automáticamente las codificaciones de archivos: cambie el archivo a un archivo de texto (en una Mac cambie el nombre de la extensión a .txt) y arrástrelo a una ventana de Mozilla Firefox (o Archivo -> Abrir). Firefox detectará la codificación, puedes ver lo que ocurrió en View -> Character Encoding.

Cambié la codificación de mi archivo usando TextMate una vez que sabía la codificación correcta. Archivo -> Vuelva a abrir utilizando la codificación y elija su codificación. Luego Archivo -> Guardar como y cambie la codificación a UTF-8 y los finales de línea a LF (o lo que sea que desee)


Con vim desde línea de comandos:

vim -c "set encoding=utf8" -c "set fileencoding=utf8" -c "wq" filename


En OS X Synalyze It! le permite mostrar partes de su archivo en diferentes codificaciones (todas las cuales son compatibles con la biblioteca de la ICU). Una vez que sepa cuál es la codificación de origen, puede copiar el archivo completo (bytes) a través del portapapeles e insertarlo en un documento nuevo donde se selecciona la codificación de destino (UTF-8 o lo que quiera).

Muy útil cuando se trabaja con UTF-8 u otras representaciones Unicode es UnicodeChecker


Siga estos pasos con Notepad ++

1- Copia el texto original

2- En Notepad ++, abra un archivo nuevo, cambie la Codificación -> seleccione una codificación que crea que sigue el texto original. Pruebe también la codificación "ANSI" ya que algunos programas leen los archivos Unicode como ANSI

3- Pasta

4- Luego para convertir a Unicode yendo de nuevo sobre el mismo menú: Codificación -> "Codificar en UTF-8" (No "Convertir a UTF-8") y con suerte se volverá legible

Los pasos anteriores se aplican para la mayoría de los idiomas. Solo tiene que adivinar la codificación original antes de pegar en Notepad ++, luego convierta a través del mismo menú a una codificación alternativa basada en Unicode para ver si las cosas se vuelven legibles.

La mayoría de los lenguajes existen en 2 formas de codificación: 1- La mayoría de las computadoras usaban inicialmente el antiguo formato heredado ANSI (ASCII), solo 8 bits. 8 bits solo permitieron 256 posibilidades, 128 de ellas donde el latín regular y los caracteres de control, los últimos 128 bits se leyeron de manera diferente dependiendo de la configuración de idioma de la PC 2- El nuevo estándar Unicode (hasta 32 bit) proporciona un código único para cada personaje en todos los idiomas actualmente conocidos y mucho más por venir. si un archivo es unicode, debe entenderse en cualquier PC con la fuente del idioma instalada. Tenga en cuenta que incluso UTF-8 alcanza hasta 32 bits y es tan amplio como UTF-16 y UTF-32, solo trata de mantener 8 bits con caracteres latinos solo para ahorrar espacio en el disco.


Encontré esta pregunta cuando buscaba una solución a un problema de página de códigos que tenía con caracteres chinos, pero al final mi problema era simplemente un problema con Windows que no los mostraba correctamente en la interfaz de usuario.

En caso de que alguien más tenga ese mismo problema, puede solucionarlo simplemente cambiando las ventanas locales en China y luego de vuelta.

Encontré la solución aquí:

http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-can-i-get-chinesejapanese-characters-to/fdb1f1da-b868-40d1-a4a4-7acadff4aafa?page=2&auth= 1

También la respuesta de Gabriel votando los datos en el bloc de notas ++ fue lo que me alertó sobre las ventanas.


En el editor de texto sublime, archivo -> volver a abrir con codificación -> elija la codificación correcta.

Generalmente, la codificación se detecta automáticamente, pero si no, puede usar el método anterior.