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.


fonte
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.

Ƭᴇcʜιᴇ007
fonte
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.

Eric
fonte
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.

MxLDevs
fonte
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
Pat HIll
fonte
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.

Courtney Lowe
fonte
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.

Hen_za
fonte
1
  1. Faça o download e instale o Unicode CSV Addin para Excel em https://github.com/jaimonmathew/Unicode-CSV-Addin
  2. Salve o csv no novo menu "Unicode CSV", como mostra a figura abaixo.

insira a descrição da imagem aqui

thanos.a
fonte
11
Você postaria um link para este suplemento, por favor?
Xavier Poinas
Atualizei a resposta para incluir a página do github. Lá você pode encontrar a página de download
thanos.a
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

Vaishakh
fonte
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

James Ricardoson
fonte
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ê.

mathieu
fonte
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 !!!

Manuel Lema
fonte
0

Salvar como unicode Renomeie o arquivo unicode como .csv ( https://www.youtube.com/watch?v=1VP8__shxTg )

Webmax
fonte
Bem-vindo ao Super Usuário! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Bertieb