Excel destruindo caracteres especiais quando salvos como CSV


21

Estou trabalhando em um projeto que usa um arquivo CSV fornecido pelo cliente para preencher um banco de dados. O cliente deve criar a planilha e salvá-la como um CSV a ser carregado, que é analisado em um banco de dados.

O problema é que, sempre que o cliente salva a planilha do Excel como um arquivo .csv do MS-DOS, muitos dos caracteres especiais são convertidos em pontos de interrogação "?" (símbolos como '"/). No entanto, se abrirmos o arquivo CSV e substituirmos manualmente cada? pelo caractere certo, ele funcionará bem.

O problema é que o arquivo de dados é ENORME, e não podemos fazer isso razoavelmente, então eu esperava que houvesse uma maneira de salvá-lo. Tentamos exportar como Unicode e ASCII sem sucesso. Também tentamos fazer o upload para o Google Docs e salvá-lo novamente, no entanto, ele também quebra esses caracteres.


2
Se você estiver no Excel 2007, na caixa de diálogo Salvar como arquivo, apenas à esquerda do botão Salvar, clique em Ferramentas. Se você escolher a opção Web e na guia Codificação, poderá selecionar uma codificação específica. Tente se é de alguma ajuda

Qual é um exemplo desse texto?
Enderland

11
O problema não é reproduzível. Verifique se os dados são realmente o que você descreve e não alguns caracteres que não podem ser representados na codificação do MS-DOS.
Jukka K. Korpela

Respostas:


11

Verifique se você está escolhendo salvar como CSV (Comma Delimited)e não CSV (MS-DOS)como, pois o DOS não suporta caracteres UTF-8.


6

Descobri que o problema de caracteres perdidos só acontece (no meu caso) ao salvar do formato xlsx para o formato csv. Tentei salvar o arquivo xlsx no xls primeiro e depois no csv. Na verdade, funcionou.


Isso não funciona para mim. Eu ainda entendo? no arquivo csv
thanos.a

4

Uma solução possível é salvá-lo como Unicode Text(em 2007, não há certeza sobre as edições anteriores), que o salva como um arquivo de texto separado por tabulação.

Esse arquivo preservou meus caracteres unicode (no meu caso, eu estava trabalhando com caracteres asiáticos ) enquanto produzia algum tipo de arquivo de texto delimitado, que você pode executar através de ferramentas externas para converter em um CSV, se necessário.

Entretanto, minha entrada não tinha guias inseridas em cada célula e não tenho certeza de como isso seria tratado.


3

Aqui está o que funciona para mim:

  1. Faça correções de dados no Excel ou CSV
  2. Salvar arquivo como texto Unicode
  3. Abra o NOTEPAD
  4. Abra o arquivo Unicode que você acabou de salvar usando o NOTEPAD
  5. Use o cursor para destacar uma área em branco que contém uma única guia 5a. Use o espaço entre o ID de aquisição e o Tipo de solicitação, pois contém ONE TAB!
  6. Pressione Cnrl-C para copiar o caractere de tabulação
  7. Digite Cnlr-H para abrir a caixa de função Substituir
  8. Clique na caixa de texto Localizar e digite Cnlr-V para colar a guia
  9. Clique na caixa Substituir por texto e digite uma vírgula
  10. Clique em Substituir para testá-lo uma vez. Confirme se a guia no arquivo foi substituída por uma vírgula
  11. Clique em Substituir tudo
  12. Clique em Cancelar
  13. Salve o arquivo e saia
  14. No Windows Explorer, altere a extensão do arquivo para .csv

11
Isso funcionou para mim, usando o Notepad ++.
ChrisB

Sim, eu tive que exportar como Unicode e encontrar e substituir abas por vírgulas também.
nilloc 26/09

2

Eu tenho esse problema há algum tempo e finalmente dediquei algum tempo para descobrir isso! Consegui (aparentemente) corrigir o problema salvando como "Windows Comma Separated (.csv)". Eu tentei de um .xlsx e um .xls, ambos convertidos para um .csv muito bem. Espero que isso ajude - informe-me se surgirem problemas com esse método. Informarei se vir algo nas próximas semanas.


11
Bem-vindo ao superusuário. Fico feliz em ver você pular direto para responder a perguntas.
21716 CharlieRB

1

Solução:

  1. Abra seu arquivo CSV no bloco de notas (você notará que diz ANSI) e salve-o novamente como UTF-8 no bloco de notas.

  2. Então a importação deve funcionar. Se, no entanto, você a abrir novamente no Excel e apenas Salvar, não funcionará porque o Excel não pode codificar nativamente no UTF-8 aparentemente.

  3. A outra opção é trabalhar com o seu arquivo CSV em www.LibreOffice.org (gratuito), que pode codificar corretamente em UTF-8 (embora eu ainda não tenha tentado isso).

Eu tive um problema semelhante ao importar um csv de produtos com frações para o WooCommerce, que estava sendo rejeitado por causa de "?" caracteres de erro. Isso ocorre porque o arquivo CSV não foi codificado em UTF-8. No entanto, mesmo depois de salvar o arquivo CSV no Excel com a codificação UTF-8, ele ainda não funcionou.

Depois de percorrer vários fóruns, parece que, embora o Excel tenha a opção de codificar como UTF-8 - ao SALVAR COMO CSV, o Excel o converte automaticamente novamente em ANSI, mesmo que você selecione UTF-8.



0

No entanto, quando salvei o arquivo .csv no formato de texto (delimitado por tabulações), os caracteres japoneses eram preenchidos perfeitamente. Depois, copiei os dados do arquivo de texto e colei em uma planilha. Funcionou bem!!!

Obrigado, Vaishakh


Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem - você sempre pode comentar em suas próprias postagens e, quando tiver reputação suficiente , poderá comentar em qualquer post .
Ramhound 21/07

0

Encontrou a melhor solução de todos os tempos: http://woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html

Do link:

1-Clique no menu Iniciar

Painel de controle 2-Select

3 - Encontre opções regionais e de idioma no modo clássico ou digite seu nome na barra de pesquisa, no canto superior direito da janela do painel de controle

4-Clique na guia Avançado e clique em localidades

5-Clique em persa ou árabe ou no programa de codificação UTF-08 desejado que você deseja salvar com o Excel em CSV


O woshka.com não é mais um URL válido, é um domínio estacionado no momento.
Craig London

0

para o ™ eu encontrei uma solução. No arquivo .xlsx, substitua todos os "™" por "& tr-ade;". remova o - da substituição por. Salve o arquivo como .csv e tudo está pronto. desejo que funcione para você.


0

Em um computador Mac, é isso que funcionou para mim.

No Excel, escolha Salvar como e, no menu suspenso, escolha Janelas separadas por vírgula (CSV).

Apenas funciona !!!


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.