¿Cambiar la codificación predeterminada de Excel a UTF-8?

24

Estoy usando una variedad de herramientas para preparar regularmente datos para la web. Una etapa requiere que abra un CSV en Excel, realice cambios y guarde el archivo.

¿Hay alguna manera de obligar a Excel a aceptar la codificación UTF-8 y guardar sus archivos con esa codificación?

Dizzley
fuente
1
Para aclarar, me gustaría cambiar una configuración para que Excel asuma que un archivo de entrada es UTF-8 por defecto. Como se menciona a continuación, LibreOffice / OpenOffice hace esto.
Dizzley
Si en realidad no tiene que lidiar con los caracteres Unicode, consideraría usar un middleware para convertir todos los CSV a ASCII y luego abrirlos en Excel.
Vassile
1
Pregunta relacionada aquí pero no exactamente la misma.
hhh

Respuestas:

15

¿Respondí una pregunta similar en la codificación de caracteres predeterminada para el Asistente de texto de Excel? .

Encontré mi respuesta en Cambiar el tipo de origen de importación de texto predeterminado en Excel .

  1. En el editor del registro, vaya a HKEY_CURRENT_USER> Software> Microsoft> Office> [Versión de Excel aquí, probablemente el número más alto en esta carpeta]> Excel> Opciones
  2. haga clic derecho en el lado derecho y vaya a Nuevo> DWORD
  3. nombra el elemento DefaultCPG y guarda
  4. haga clic derecho en DefaultCPG y elija Modificar
  5. establecer la base en decimal
  6. ingrese el código que se muestra en el asistente de Excel (para UTF-8, es 65001)
  7. haga clic en Aceptar.

Como dice Vasille en el comentario a esta pregunta, si su archivo no está realmente en formato UTF-8, es posible que técnicamente desee convertir los caracteres dentro del archivo a la codificación que desea antes de abrir en Excel. Sin embargo, para mis propósitos, UTF-8 hace un buen trabajo al mostrar caracteres no dañados.

Robert H.
fuente
3
¿Hay alguna razón para no hacer esto? ¿Por qué este no es el comportamiento predeterminado de Excel? --- Mi equipo a menudo se ocupa de conjuntos de datos que contienen caracteres extranjeros, y me pregunto si hay alguna razón para no realizar esta acción en cada una de nuestras máquinas.
user1318135
3
Esto desafortunadamente no funcionó en mi máquina. Los archivos aún se abren con la codificación predeterminada (Win 7, Office 2016).
user1318135
8
No funciona en el mío también, Win 10 Office 2016
Phuah Yee Keat
2
No dados. Excel se comporta tan estúpidamente como siempre. Uno esperaría que una característica obvia como esta sea accesible a través de una preferencia del usuario en software tan maduro como Excel.
Aaron Bramson
4

Una manera fácil de cambiar la codificación ANSI de Excel a UTF-8 es abrir el archivo .csv en el bloc de notas y luego seleccionar Archivo> Guardar como. Ahora, en la parte inferior, verá la codificación establecida en ANSI, cámbiela a UTF-8 y guarde el archivo como un archivo nuevo y listo.

Moudiz
fuente
Experimentaré con esto. Un problema que tengo es abrir archivos consistentemente en la codificación correcta para que no obtenga datos en dos codificaciones en un solo archivo de resultados. Entonces se vuelve difícil de arreglar. Realmente deseo que Excel me permita una mejor manera de elegir la codificación del archivo de entrada.
Dizzley
2

Debe usar la File > Importopción y comenzar con un documento en blanco y especificarUTF-8

ingrese la descripción de la imagen aquí

pero esto está lejos de ser óptimo para hacer que esta sea una configuración predeterminada para todos los archivos, de todos modos no es necesario rotar los archivos alrededor de Google Drive o LibreOffice. Los valores predeterminados están mal elegidos y la discapacidad para cambiar eso es irritante.

Relacionado

  1. Cómo configurar la codificación de caracteres al abrir Excel pero no encuentra la opción de cambiar los valores predeterminados de modo que todos los archivos se abran automáticamente con UTF-8 en lugar del formato Macintosh en OSX

  2. Cómo cambiar la opción de archivo predeterminada a UTF-8 lejos de la opción de archivo Macintosh en Apple.SE.

hhh
fuente
0

Resolví un problema similar antes. Sin éxito, pero puede usar LibreOffice , que es UTF-8 por defecto.

Lluser
fuente
LibreOffice es muy útil para esto. Sin embargo, a veces tengo macros de VBA para ejecutar. Gracias Lluser
Dizzley
0

Hay un complemento de Excel disponible aquí para trabajar con archivos Unicode CSV que deberían ayudarte.

Aquí está la nota del desarrollador Jaimon Mathew:

Excel trata los archivos .csv como archivos de texto y reemplazará todos los caracteres Unicode con "?" Cuando se guarde normalmente. Si desea conservar los caracteres Unicode, deberá guardar el archivo como "Texto Unicode (* .txt)", que es un archivo delimitado por tabulaciones. Como no pude encontrar ninguna solución existente para preservar los caracteres Unicode en formato CSV, pensé en intentar crear un complemento de Excel para hacerlo.

1

Karan
fuente
0

No es la mejor solución, pero es una opción: suba su archivo de Excel a Google Drive, ábralo con Google Tabs y descárguelo como un archivo csv. A mi me funciono.

Viktor
fuente
55
Esto no responde a la pregunta de cómo cambiar la codificación del documento de Excel.
Ramhound
Por supuesto, cuando abre el CSV en Excel, pierde el formato de la celda, por lo que algunas cadenas de ID numéricas se convierten en enteros.
Dizzley
0

Suponiendo que tiene un shell de Unix disponible (Cygwin), agrego al frente del archivo csv una pequeña ID de Unicode de 3 caracteres (UTF-8) y luego se lee bien en Excel y, lo que es más importante, se procesa correctamente como entrada usando VB Excel automatización.

UTF-8.txt

EFBBBF << edición hexadecimal en un archivo de 3 caracteres.

cat UTF-8.txt file-to-use.csv> archivo_nuevo.csv

avwtp
fuente
1
(1) ¿Puede describir cómo / por qué funciona esto? (2) ¿Puede describir exactamente cómo crear este UTF-8.txtarchivo?
Scott
Sugiero usar un editor hexadecimal y escribir la secuencia de 3 caracteres. Por qué funciona, ni idea. Descubrí esta solución tomando un archivo csv UTF-8 existente, renombrándolo a txt, importándolo a Excel (como se sugiere en otros hilos), guardándolo como CSV con el complemento Unicode (otro hilo) y luego haciendo una diferencia binaria de los dos archivos. La única diferencia fue la secuencia de inicio de 3 caracteres.
avwtp
Vea este hilo por qué funciona [link] ( stackoverflow.com/questions/6002256/… )
avwtp