Esta no es realmente una pregunta de programación, ¿hay una línea de comando o una herramienta de Windows (Windows 7) para obtener la codificación actual de un archivo de texto? Claro que puedo escribir una pequeña aplicación de C #, pero quería saber si ya hay algo integrado.
206
Respuestas:
Abra su archivo usando el Bloc de notas vanilla antiguo que viene con Windows.
Le mostrará la codificación del archivo cuando haga clic en " Guardar como ... ".
Se verá así:
Cualquiera que sea la codificación seleccionada por defecto, esa es la codificación actual para el archivo.
Si es UTF-8, puede cambiarlo a ANSI y hacer clic en guardar para cambiar la codificación (o viceversa).
Me doy cuenta de que hay muchos tipos diferentes de codificación, pero esto era todo lo que necesitaba cuando me informaron que nuestros archivos de exportación estaban en UTF-8 y requerían ANSI. Fue una exportación de una sola vez, por lo que el Bloc de notas se ajustaba perfectamente.
FYI: Según tengo entendido, creo que " Unicode " (como aparece en el Bloc de notas) es un nombre inapropiado para UTF-16.
Más información sobre la opción " Unicode " del Bloc de notas : Windows 7 - UTF-8 y Unicdoe
fuente
El 'archivo' de la herramienta de línea de comandos (Linux) está disponible en Windows a través de GnuWin32:
http://gnuwin32.sourceforge.net/packages/file.htm
Si tiene instalado git, se encuentra en C: \ Archivos de programa \ git \ usr \ bin.
Ejemplo:
fuente
file
comando en cygwin . Cualquier conjunto de herramientas POSIX para Windows debería tenerfile
.Si tiene "git" o "Cygwin" en su máquina con Windows, vaya a la carpeta donde está su archivo y ejecute el comando:
Esto le dará los detalles de codificación de todos los archivos en esa carpeta.
fuente
file *
comandofile --mime-encoding
obtener la codificación del archivoOtra herramienta que encontré útil: https://archive.codeplex.com/?p=encodingchecker EXE se puede encontrar aquí
fuente
Aquí está mi opinión sobre cómo detectar la familia Unicode de codificaciones de texto a través de BOM. La precisión de este método es baja, ya que este método solo funciona en archivos de texto (específicamente archivos Unicode), y el valor predeterminado es
ascii
cuando no hay BOM presente (como la mayoría de los editores de texto, el valor predeterminado seríaUTF8
si desea hacer coincidir el ecosistema HTTP / web )Actualización 2018 : ya no recomiendo este método. Recomiendo usar file.exe de las herramientas GIT o * nix como lo recomienda @Sybren, y en una respuesta posterior muestro cómo hacerlo a través de PowerShell .
Recomendación: Esto puede funcionar razonablemente bien si el
dir
,ls
oGet-ChildItem
sólo comprueba conocidos archivos de texto, y cuando sólo están buscando "malos" de codificaciones de una lista conocida de herramientas. (es decir, SQL Management Studio tiene como valor predeterminado UTF16, que rompió GIT auto-cr-lf para Windows, que fue el valor predeterminado durante muchos años).fuente
Get-FileEncoding
no parece existir en mi sistema. ¿Es un cmdlet personalizado?Get-FileEncoding
poshcode. Incluso he revisado punycode de python y nodejs, pero esta versión pequeña alcanza 80/20 para mi uso (más como 99/1). Si aloja los archivos de otras personas, le sugiero que use elfile
comando de la respuesta de Syben ( stackoverflow.com/a/34766140/195755 ) u otro decodificador Unicode de calidad de producción.default
codificando (cuando no hay BOM). Para XML, JSON y JavaScript, el valor predeterminado es UTF8, pero su kilometraje puede variar.Escribí la respuesta # 4 (al momento de escribir). Pero últimamente tengo instalado git en todas mis computadoras, así que ahora uso la solución de @ Sybren. Aquí hay una nueva respuesta que hace que la solución sea útil desde powershell (sin poner todo git / usr / bin en la RUTA, lo cual es demasiado desorden para mí).
Agregue esto a su
profile.ps1
:Y se utiliza como:
file.exe --mime-encoding *
. Usted debe incluir .exe en el comando para PS alias para el trabajo.Pero si no personaliza su PowerShell profile.ps1, le sugiero que comience con el mío: https://gist.github.com/yzorg/8215221/8e38fd722a3dfc526bbe4668d1f3b08eb7c08be0 y guárdelo en
~\Documents\WindowsPowerShell
. Es seguro usarlo en una computadora sin git, pero escribirá advertencias cuando no se encuentre git.El .exe en el comando también es cómo lo uso
C:\WINDOWS\system32\where.exe
desde powershell; y muchos otros comandos de la CLI del sistema operativo que están "ocultos por defecto" por powershell, * shrug *.fuente
file
como su alias para file.exe en lugar defile.exe
¯ \ _ (ツ) _ / ¯dir | where Size -lt 10000
vswhere.exe git
.where.exe
para diferenciarlo dewhere
PS, que es un alias incorporado paraWhere-Object
. Ejemplo:where.exe git*
vsls . | where Size -lt 10000
file.exe
la clase estática vs .NET, que podría necesitar en el mismo script que detecta la codificación. Ejemplo:[File]::SetCreationTime("readme.md", [DateTime]::Now)
.Una solución simple podría ser abrir el archivo en Firefox.
y la codificación de texto aparecerá en la ventana "Información de la página".
Nota: Si el archivo no está en formato txt, simplemente cámbiele el nombre a txt e intente nuevamente.
PD Para más información ver este artículo.
fuente
Instale git (en Windows debe usar la consola git bash). Tipo:
para todos los archivos en el directorio actual, o
para los archivos en todos los subdirectorios
fuente
Puede usar una utilidad gratuita llamada Encoding Recognizer (requiere Java). Puede encontrarlo en http://mindprod.com/products2.html#ENCODINGRECOGNISER
fuente
Similar a la solución enumerada anteriormente con el Bloc de notas, también puede abrir el archivo en Visual Studio, si lo está usando. En Visual Studio, puede seleccionar "Archivo> Opciones avanzadas de guardado ..."
El cuadro combinado "Codificación:" le dirá específicamente qué codificación se está utilizando actualmente para el archivo. Tiene muchas más codificaciones de texto enumeradas allí que el Bloc de notas, por lo que es útil cuando se trata con varios archivos de todo el mundo y cualquier otra cosa.
Al igual que el Bloc de notas, también puede cambiar la codificación de la lista de opciones allí, y luego guardar el archivo después de presionar "Aceptar". También puede seleccionar la codificación que desee a través de la opción "Guardar con codificación ..." en el cuadro de diálogo Guardar como (haciendo clic en la flecha al lado del botón Guardar).
fuente
Algún código C aquí para una detección confiable de ascii, bom's y utf8: https://unicodebook.readthedocs.io/guess_encoding.html
EDITAR:
Una versión de PowerShell de una respuesta de C # de: forma efectiva de encontrar la codificación de cualquier archivo . Solo funciona con firmas (boms).
fuente
La única forma en que he encontrado para hacer esto es VIM o Notepad ++.
fuente