Saltar al contenido

¿Cómo convierto un archivo codificado ANSI a UTF-8 con Notepad++?

Nuestro team de redactores ha estado largas horas investigando la respuesta a tus preguntas, te compartimos la respuesta así que deseamos serte de gran apoyo.

Solución:

Con respecto a esta parte:

Cuando lo convierto a UTF-8 sin bom y cierro el archivo, el archivo vuelve a ser ANSI cuando lo vuelvo a abrir.

La solución más sencilla es evitar el problema por completo configurando correctamente Notepad++.

Tratar Settings -> Preferences -> New document -> Encoding -> elegir UTF-8 sin BOM, y verifique Apply to opened ANSI files.

notepad ++ UTF-8 se aplica a archivos ANSI abiertos

De esa forma, todos los archivos ANSI abiertos se tratarán como UTF-8 sin BOM.

Para una explicación de lo que está pasando, lea los comentarios debajo de esta respuesta.

Para obtener más información sobre Unicode y UTF-8, lea este excelente artículo de Joel Spolsky.

Tal vez esta no sea la respuesta que necesitabas, pero encontré un problema similar, así que decidí ponerlo aquí.

Necesitaba convertir 500 archivos xml a UTF8 a través de Notepad++. ¿Por qué el Bloc de notas++? Cuando usé la opción "Codificar en UTF8" (muchos otros convertidores usan la misma lógica) arruinó todos los caracteres especiales, así que tuve que usar "Convertir a UTF8" explícitamente.


Aquí algunos pasos simples para convertir varios archivos a través de Notepad ++ sin alterar los caracteres especiales (por ejemplo, signos diacríticos).

  1. Ejecute Notepad ++ y luego abra el menú Complementos->Administrador de complementos->Mostrar administrador de complementos
  2. Instalar Escritura de Python. Cuando el complemento esté instalado, reinicie la aplicación.
  3. elegir menú Complementos->Python Script->Nuevo script.
  4. Elija su nombre y luego pase el siguiente código:

convertToUTF8.py

import os
import sys
from Npp import notepad # import it first!

filePathSrc="C:\Users\" # Path to the folder with files to convert
for root, dirs, files in os.walk(filePathSrc):
    for fn in files: 
        if fn[-4:] == '.xml': # Specify type of the files
            notepad.open(root + "\" + fn)      
            notepad.runMenuCommand("Encoding", "Convert to UTF-8")
            # notepad.save()
            # if you try to save/replace the file, an annoying confirmation window would popup.
            notepad.saveAs("".format(fn[:-4], '_utf8.xml')) 
            notepad.close()

Después de todo, ejecute el script

Si no tiene caracteres que no sean ASCII (puntos de código 128 y superiores) en su archivo, UTF-8 sin BOM es lo mismo que ASCII, byte por byte, por lo que Notepad ++ adivinará mal.

Lo que debe hacer es especificar la codificación de caracteres al servir la respuesta AJAX - por ejemplo, con PHP, harías esto:

header('Content-Type: application/json; charset=utf-8');

La parte importante es especificar el conjunto de caracteres con todos Respuesta JS: de lo contrario, IE recurrirá a la codificación predeterminada del sistema del usuario, que es incorrecta la mayor parte del tiempo.

Sección de Reseñas y Valoraciones

Al final de la post puedes encontrar las reseñas de otros administradores, tú además tienes la opción de mostrar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.