Alterar a codificação padrão do Excel para UTF-8?

24

Estou usando uma variedade de ferramentas para preparar regularmente dados para a web. Um estágio exige que eu abra um CSV no Excel, faça alterações e salve o arquivo.

Existe uma maneira de forçar o Excel a aceitar a codificação UTF-8 e salvar seus arquivos com essa codificação?

Dizzley
fonte
11
Para esclarecer, gostaria de alterar uma configuração para que o Excel assuma que o arquivo de entrada é UTF-8 por padrão. Como mencionado abaixo, o LibreOffice / OpenOffice faz isso.
Dizzley
Se você realmente não possui caracteres Unicode, lembre-se de usar um middleware para converter todos os CSVs em ASCII e abrir no Excel.
Vassile
11
Pergunta relacionada aqui, mas não exatamente a mesma.
hhh 27/01

Respostas:

14

Respondi a uma pergunta semelhante em Codificação de caracteres padrão para o Assistente de texto do Excel? .

Encontrei minha resposta em Alterando o tipo de origem de importação de texto padrão no Excel .

  1. No editor de registro, vá para HKEY_CURRENT_USER> Software> Microsoft> Office> [versão do Excel aqui - provavelmente o número mais alto nesta pasta]> Excel> Opções
  2. clique com o botão direito do mouse no lado direito e vá para Novo> DWORD
  3. nomeie o item DefaultCPG e salve
  4. clique com o botão direito do mouse em DefaultCPG e escolha Modify
  5. defina a base como decimal
  6. insira o código mostrado no assistente do Excel (para UTF-8, é 65001)
  7. Clique OK.

Como Vasille diz no comentário a esta pergunta, se o seu arquivo não estiver realmente no formato UTF-8, tecnicamente você poderá converter os caracteres do arquivo na codificação desejada antes de abrir no Excel. Porém, para meus propósitos, o UTF-8 faz um trabalho suficientemente bom para exibir caracteres não corrompidos.

Robert H.
fonte
3
Existem razões para não fazer isso? Por que esse não é o comportamento padrão do Excel? --- Minha equipe geralmente lida com conjuntos de dados contendo caracteres estrangeiros, e estou pensando se há algum motivo para não executar essa ação em cada uma de nossas máquinas.
user1318135
3
Infelizmente, isso não funcionou na minha máquina. Os arquivos ainda abrem com a codificação padrão (Win 7, Office 2016).
user1318135
8
Também não funciona no meu, Win 10 Office 2016
Phuah Yee Keat
2
Sem dados. O Excel se comporta da maneira mais estúpida possível. Seria de esperar que um recurso óbvio como esse fosse acessível através de uma preferência do usuário em softwares tão maduros quanto o Excel.
Aaron Bramson
4

Uma maneira fácil de alterar a codificação excel ANSI para UTF-8 é abrir o arquivo .csv no bloco de notas e selecionar Arquivo> Salvar como. Agora, na parte inferior, você verá a codificação definida como ANSI alterando-a para UTF-8 e salvando o arquivo como novo arquivo e pronto.

Moudiz
fonte
Vou experimentar isso. Um problema que tenho é abrir arquivos de forma consistente na codificação correta, para não obter dados em duas codificações em um único arquivo de resultados. Então fica difícil de consertar. Eu realmente gostaria que o Excel me permitisse uma maneira melhor de escolher a codificação do arquivo de entrada.
Dizzley
2

Você precisa usar a File > Importopção e começar com um documento em branco e especificarUTF-8

insira a descrição da imagem aqui

mas isso está longe de ser o ideal para torná-la uma configuração padrão para todos os arquivos. De qualquer maneira, não é necessário girar os arquivos pelo Google Drive ou pelo LibreOffice. Os padrões são mal escolhidos e a incapacidade de mudar isso é irritante.

Relacionado

  1. Como definir a codificação de caracteres ao abrir o Excel, mas não encontra a opção de alterar os padrões, de modo que todos os arquivos sejam abertos automaticamente com UTF-8 em vez do formato Macintosh no OSX

  2. Como alterar a opção de arquivo padrão para UTF-8 longe da opção de arquivo do Macintosh no Apple.SE.

hhh
fonte
0

Eu resolvi um problema semelhante antes. Sem sucesso, mas você pode usar o LibreOffice , que é UTF-8 por padrão.

Lluser
fonte
O LibreOffice é muito útil para isso. No entanto, às vezes tenho macros VBA para executar. Obrigado Lluser
Dizzley
0

Há um suplemento do Excel disponível aqui para trabalhar com arquivos Unicode CSV que devem ajudá-lo.

Aqui está a nota do desenvolvedor Jaimon Mathew:

O Excel trata os arquivos .csv como arquivos de texto e substitui todos os caracteres Unicode por "?" Quando salvos normalmente. Se você quiser preservar os caracteres Unicode, será necessário salvar o arquivo como "Texto Unicode (* .txt)", que é um arquivo delimitado por tabulação. Como não consegui encontrar nenhuma solução existente para preservar caracteres Unicode no formato CSV, pensei em tentar criar um suplemento do Excel para fazer exatamente isso.

1 1

Karan
fonte
0

Não é a melhor solução, mas é uma opção: faça o upload do seu arquivo do Excel para o Google drive, abra-o com o Google Tabs e faça o download como um arquivo csv. Funcionou para mim.

Viktor
fonte
5
Isso não responde à pergunta como alterar a codificação do documento do Excel.
Ramhound
Obviamente, quando você abre o CSV no Excel, perde a formatação da célula, para que algumas seqüências de ID numéricas sejam convertidas em números inteiros.
Dizzley
0

Supondo que você tenha um shell unix disponível (Cygwin), anexo à frente do arquivo csv um pequeno ID unicode de 3 caracteres (UTF-8) e, em seguida, ele lê bem no Excel e, mais importante, é processado corretamente como entrada usando o VB Excel automação.

UTF-8.txt

EFBBBF << edição hexadecimal em um arquivo de 3 caracteres.

cat Arquivo UTF-8.txt a ser usado.csv> new_file.csv

avwtp
fonte
11
(1) Você pode descrever como / por que isso funciona? (2) Você pode descrever exatamente como criar este UTF-8.txtarquivo?
Scott Scott
Sugiro usar um editor hexadecimal e digitar a sequência de 3 caracteres. Por que funciona, não faço ideia. Eu descobri essa solução pegando um arquivo csv UTF-8 existente, renomeando-o para txt, importando-o para o Excel (como sugerido em outros threads), salvando-o como CSV com o plug-in Unicode (outro thread) e fazendo uma comparação binária dos dois arquivos. A única diferença foi a sequência inicial de 3 caracteres.
Avwtp
Veja este tópico porque trabalha [link] ( stackoverflow.com/questions/6002256/... )
avwtp