Convertir Windows-1252 a UTF-8 conservando los saltos de línea
Un ejemplo byte a byte para conservar acentos, el euro y CRLF al convertir un archivo local a UTF-8.
Empieza por los bytes originales
El inspector de codificación y convertidor UTF-8 lee el archivo antes de que otro programa interprete sus bytes. Elige la exportación original en vez de copiar texto ya dañado desde un editor. Que los bytes sean UTF-8 válidos no demuestra que esa fuera la codificación prevista.
Un ejemplo reproducible
Pulsa Cargar ejemplo Windows-1252. El archivo ficticio contiene exactamente ocho bytes: 43 61 66 E9 20 80 0D 0A. Se selecciona Windows-1252 explícitamente. El texto Unicode esperado es Café €\r\n: el final representa un CR real seguido de LF, no cuatro caracteres literales.
Sus puntos de código son U+0043 U+0061 U+0066 U+00E9 U+0020 U+20AC U+000D U+000A. Los bytes originales no son UTF-8 estricto: E9 no va seguido de los bytes de continuación necesarios. Esto invita a consultar la codificación de origen; no demuestra que cualquier archivo así sea Windows-1252.
- Mantén Windows-1252 y pulsa Vista previa de la conversión.
- Comprueba Café € y revisa que los detalles indiquen un CRLF y un salto final.
- Deja desmarcado el BOM de salida, salvo que la aplicación receptora lo pida expresamente.
- Descarga el resultado. Sus once bytes exactos son
43 61 66 C3 A9 20 E2 82 AC 0D 0A. - Si marcas BOM, previsualiza otra vez: la salida tiene catorce bytes, con
EF BB BFantes de esos once.
«ANSI» no identifica una codificación concreta
La etiqueta «ANSI» de una aplicación es ambigua. Windows-1252 convierte 80 en el euro; ISO-8859-1 lo asigna a U+0080, un control C1 que esta herramienta rechaza. Los bytes 81, 8D, 8F, 90 y 9D no están definidos en su correspondencia estricta Windows-1252 y detienen la conversión. Pregunta al productor del archivo por la codificación real en vez de escoger solo porque una vista previa parezca legible.
BOM, UTF-16 y finales incompletos
FF FE 41 00 0D 00 0A 00 es un ejemplo UTF-16LE con BOM. Se convierte en 41 0D 0A en UTF-8 sin BOM: A seguido de CRLF. Sin BOM hay que elegir UTF-16 explícitamente. Un byte final suelto o un sustituto sin pareja detiene la conversión, incluso fuera de la vista previa. Se reconoce el BOM UTF-32, pero el formato no se admite.
Qué se conserva y qué no se puede recuperar
Se conservan espacios, tabulaciones, saltos CRLF/LF/CR mezclados, la presencia o ausencia de salto final y los caracteres Unicode compuestos o combinados. Solo se elimina el BOM inicial de origen; tú eliges el BOM de salida. Un U+FFFD ya presente se conserva. Convertir «Café» ya dañado no recupera los bytes originales.
El límite es 5 MiB (5 242 880 bytes). La vista previa muestra hasta 16 000 unidades de código UTF-16, pero se valida y exporta todo el archivo. Se rechazan firmas binarias conocidas y controles NUL/C0/C1 salvo tabulación, CR y LF. Esta precaución puede rechazar texto legítimo poco habitual. Se descarga texto sin formato .utf8.txt sin sobrescribir el original.
Para un CSV, convierte primero la codificación y luego usa CSV a JSON para cambiar la estructura. El inspector no analiza el CSV ni cambia separadores. Trabaja en memoria, sin peticiones de red ni almacenamiento de la herramienta; el sitio sigue cargando sus recursos. Vuelve al inspector de codificación para probar el ejemplo.