Excel destruye caracteres especiales cuando se guarda como CSV

21

Estoy trabajando en un proyecto que utiliza un archivo CSV proporcionado por el cliente para completar una base de datos. El cliente debe crear la hoja de cálculo, luego guardarla como un CSV para cargar, que luego se analiza en una base de datos.

El problema es que cada vez que el cliente guarda la hoja de cálculo de Excel como un archivo .csv de MS-DOS, muchos de los caracteres especiales se convierten en signos de interrogación "?" (símbolos como '"/). Sin embargo, si abrimos el archivo CSV y reemplazamos manualmente cada uno con el carácter correcto, funciona bien.

El problema es que el archivo de datos es ENORME, y no podemos hacer esto razonablemente, así que esperaba que hubiera una manera de guardarlo. Hemos intentado exportar como Unicode y ASCII en vano. También hemos intentado subir a Google Docs y volver a guardar, sin embargo, también rompe esos caracteres.


fuente
2
Si está en Excel 2007, en el cuadro de diálogo Guardar como archivo, a la izquierda del botón Guardar, aparece un menú desplegable Herramientas. Si elige la opción web y en la pestaña Codificación, puede seleccionar una codificación específica. Pruebe si eso es de alguna ayuda
¿Cuál es un ejemplo de ese texto?
enderland
1
El problema no es reproducible. Asegúrese de que los datos sean realmente lo que describe y no algunos caracteres que no se pueden representar en la codificación de MS-DOS.
Jukka K. Korpela

Respuestas:

11

Asegúrese de que está eligiendo guardar como CSV (Comma Delimited)y no una CSV (MS-DOS), como DOS no soporta UTF-8.

Ƭᴇcʜιᴇ007
fuente
6

He descubierto que el problema del personaje perdido solo ocurre (en mi caso) cuando se guarda del formato xlsx al formato csv. Intenté guardar el archivo xlsx en xls primero, luego en csv. En realidad funcionó.

Eric
fuente
Esto no funciona para mi. Todavía me sale? en archivo csv
thanos.a
4

Una posible solución es guardarlo como Unicode Text(2007 lo tiene, no estoy seguro de las ediciones anteriores), que lo guarda como un archivo de texto separado por tabulaciones.

Este archivo conservó mis caracteres Unicode (en mi caso , estaba trabajando con caracteres asiáticos ) mientras producía algún tipo de archivo de texto delimitado que luego puede ejecutar a través de herramientas externas para convertir a un csv si es necesario.

Sin embargo, mi entrada no tenía pestañas incrustadas dentro de cada celda, y no estoy seguro de cómo se manejaría eso.

MxLDevs
fuente
3

Esto es lo que funciona para mí:

  1. Hacer correcciones de datos en Excel o CSV
  2. Guardar archivo como texto Unicode
  3. Abrir NOTEPAD
  4. Abra el archivo Unicode que acaba de guardar con NOTEPAD
  5. Use su cursor para resaltar un área en blanco que contiene una sola pestaña 5a. Use el espacio entre el Id. De adquisición y el Tipo de solicitud porque contiene UNA PESTAÑA.
  6. Presione Cnrl-C para copiar el carácter de tabulación
  7. Escriba Cnlr-H para abrir el cuadro de función Reemplazar
  8. Haga clic en el cuadro de texto Buscar y escriba Cnlr-V para pegar la pestaña
  9. Haga clic en el cuadro Reemplazar con texto y escriba una coma
  10. Haga clic en Reemplazar para probarlo una vez. Confirme que la pestaña del archivo se reemplaza con una coma
  11. Haga clic en Reemplazar todo
  12. Haga clic en Cancelar
  13. Guarda el archivo y cierra
  14. En el Explorador de Windows, cambie la extensión del archivo a .csv
Pat Hilll
fuente
1
Esto funcionó para mí, usando Notepad ++.
ChrisB
Sí, tuve que exportar como Unicode y encontrar y reemplazar pestañas a comas también.
nilloc
2

¡He estado teniendo este problema por un tiempo ahora, y finalmente dediqué un tiempo para resolverlo! Pude (aparentemente) solucionar el problema guardando como "Windows Comma Separated (.csv)". Lo probé de un .xlsx y un .xls, ambos convertidos a un .csv muy bien. Espero que esto ayude; avíseme si surge algún problema con este método. Informaré si veo algo en las próximas semanas.

Courtney Lowe
fuente
1
Bienvenido a Super User. Me alegra verte saltar directamente para responder preguntas.
CharlieRB
1

Solución:

  1. Abra su archivo CSV en el Bloc de notas (notará que dice ANSI), luego vuelva a guardarlo como UTF-8 en el Bloc de notas.

  2. Entonces la importación debería funcionar. Sin embargo, si lo abre de nuevo en Excel y simplemente Guardarlo no funcionará porque Excel aparentemente no puede codificar de forma nativa en UTF-8.

  3. La otra opción es trabajar con su archivo CSV en www.LibreOffice.org (gratis), que puede codificar correctamente en UTF-8 (aunque no lo he probado yo mismo).

Me encontré con un problema similar al importar un csv de productos con fracciones en WooCommerce, que fue rechazado debido a "?" caracteres de error Esto se debe a que el archivo CSV no estaba codificado en UTF-8. SIN EMBARGO, incluso después de guardar el archivo CSV en Excel con codificación UTF-8, todavía no funcionó.

Después de rascarse en varios foros, parece que aunque Excel ofrece la opción de codificar como UTF-8, al GUARDAR COMO UN CSV, Excel lo convierte automáticamente a ANSI, aunque seleccione UTF-8.

Hen_za
fuente
1
  1. Descargue e instale Unicode CSV Addin para Excel desde https://github.com/jaimonmathew/Unicode-CSV-Addin
  2. Guarde el csv del nuevo menú "Unicode CSV" como se muestra en la imagen a continuación.

ingrese la descripción de la imagen aquí

thanos.a
fuente
1
¿Publicaría un enlace a este complemento por favor?
Xavier Poinas
He actualizado la respuesta para incluir la página de github. Allí puede encontrar la página de descarga
thanos.a
0

Incluso me enfrenté al problema con caracteres especiales mientras descargaba los términos japoneses en formato .csv. Sin embargo, cuando guardé el archivo .csv en formato de texto (delimitado por tabulaciones), los caracteres japoneses se poblaron perfectamente. Luego simplemente copié datos del archivo de texto y los pegué en una hoja de cálculo. ¡¡¡Funcionado bien!!!

Gracias Vaishakh

Vaishakh
fuente
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación; siempre puede comentar sus propias publicaciones y, una vez que tenga suficiente reputación , podrá comentar cualquier publicación .
Ramhound
0

Encontré la mejor solución: http://woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html

Desde el enlace:

1-Click en el menú de inicio

Panel de control 2-Select

3-Encuentra opciones regionales y de idioma en modo clásico o escribe su nombre en la barra de búsqueda en la parte superior derecha de la ventana del panel de control

4-Haga clic en la pestaña avanzada y haga clic en configuraciones regionales

5-Haga clic en Persa o Árabe o en el programa de codificación UTF-08 que desee guardar con Excel en CSV

James Ricardoson
fuente
woshka.com ya no es una URL válida, es un dominio estacionado en este momento.
Craig London
0

para ™ encontré una solución. En el archivo .xlsx, reemplace todos "™" con "& tr-ade;". eliminar el - del reemplazar con. Guarde el archivo como .csv y todo estará listo. deseo que funcione para ti

Mathieu
fuente
0

En una computadora Mac, esto es lo que funcionó para mí.

En Excel, elija guardar como y luego, en el menú desplegable, elija ventanas separadas por comas (CSV).

¡Simplemente funciona!

Manuel Lema
fuente
0

Guardar como unicode Cambiar el nombre del archivo unicode como .csv ( https://www.youtube.com/watch?v=1VP8__shxTg )

Webmax
fuente
¡Bienvenido a Super User! Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
bertieb