O charset O Microsoft Excel usa ao salvar arquivos?

votos
56

Eu tenho um aplicativo Java que lê arquivos CSV que foram criados no Excel (por exemplo, 2007). Alguém sabe o que charset MS Excel usa para salvar esses arquivos em?

Eu teria imaginado ou:

  • janelas-1255 (Cp1255)
  • ISO-8859-1
  • UTF8

mas eu sou incapaz de decodificar caracteres estendidos (por exemplo, letras acentuadas francês) usando qualquer um destes tipos de charset.

Publicado 03/02/2009 em 20:32
fonte usuário
Em outras línguas...                            


10 respostas

votos
39

De memória, o Excel usa a codificação ANSI específico da máquina. Portanto, este seria o Windows-1252 para uma instalação EN-US, 1251 para russo, etc.

Respondeu 01/10/2009 em 07:03
fonte usuário

votos
13

arquivos CSV poderia estar em qualquer formato, dependendo do que opção de codificação foi especificado durante a exportação do Excel: (Save Dialog, Botão Ferramentas, Opções da Web Item, Encoding Tab)

UPDATE: Excel (incluindo o Office 2013) na verdade não respeitar as opções da web selecionados na caixa de diálogo "salvar como ...", então este é um bug de algum tipo. Eu só uso o OpenOffice Calc agora abrir os arquivos XLSX e exportá-los como arquivos CSV (configurações de filtro Editar, escolha UTF-8).

Respondeu 17/05/2010 em 21:34
fonte usuário

votos
4

Eu tive um problema semelhante na semana passada. I recebeu uma série de arquivos CSV com codificações diferentes. Antes de importar para o banco de dados Então, usei o libary chardet para farejar automaticamente a codificação correta.

Chardet é uma porta de Mozillas mecanismo de detecção de caráter e se o tamanho da amostra é grande o suficiente (um caractere acentuado não vai fazer) funciona muito bem.

Respondeu 03/02/2009 em 20:44
fonte usuário

votos
3

Acordar esta discussão antiga ... Estamos agora em 2017. E ainda Excel é incapaz de salvar uma planilha simples para um formato CSV, preservando a codificação original ... A incrível.

Felizmente Google Docs vive no século direita. A solução para mim é apenas para abrir a planilha usando o Google Docs, do que baixá-lo de volta para baixo como CSV. O resultado é um arquivo CSV corretamente codificado (com todas as cadeias codificados em UTF-8).

Respondeu 02/02/2017 em 15:21
fonte usuário

votos
2

Russian Editionoferece CSV, CSV (Macintosh)e CSV (DOS).

Ao salvar na planície CSV, ele usa windows-1251.

Eu apenas tentei salvar palavra francesa Résuméjunto com o texto russo, que salvou em HEXcomo 52 3F 73 75 6D 3F, 3Fsendo o ASCIIcódigo para question mark.

Quando eu abri a CSVarquivo, a palavra, é claro, tornou-se ilegível ( R?sum?)

Respondeu 03/02/2009 em 20:45
fonte usuário

votos
0

Excel 2010 salva uma UTF-16 / UCS-2 TSV arquivo, se você selecionar File > Save As > Unicode Text (.txt). É (força) sufixo ".txt", que você pode mudar para ".tsv".

Se você precisar de CSV, você pode, em seguida, converter o arquivo TSV em um editor de texto como o Notepad ++, Ultra Editar, Editor carmesim etc, substituindo guias por ponto e vírgula, vírgulas ou similares. Note-se que por exemplo, para ler em uma tabela DB, muitas vezes TSV obras já bem (e muitas vezes é mais fácil de ler manualmente).

Se você precisar de uma página de código diferente, como UTF-8, use um dos editores acima mencionados para converter.

Respondeu 18/12/2018 em 09:29
fonte usuário

votos
0

Você pode usar este código Visual Studio VB.Net para obter a codificação:

Dim strEncryptionType As String = String.Empty
Dim myStreamRdr As System.IO.StreamReader = New System.IO.StreamReader(myFileName, True)
Dim myString As String = myStreamRdr.ReadToEnd()
strEncryptionType = myStreamRdr.CurrentEncoding.EncodingName
Respondeu 28/06/2016 em 14:59
fonte usuário

votos
-1

CP1250 é amplamente utilizado em documentos do Microsoft Office, incluindo Word e Excel 2003.

http://en.wikipedia.org/wiki/Windows-1250

Uma maneira simples de confirmar isso seria:

  1. Criar uma folha de cálculo com caracteres de ordem superior, por exemplo, "Veszprém" em uma das células;
  2. Use sua linguagem de programação favorita para analisar e decodificar a planilha;
  3. Olhe para o que o script produz quando você imprimir os dados decodificados.

script perl exemplo:

#!perl

use strict;

use Spreadsheet::ParseExcel::Simple;
use Encode qw( decode );

my $file    = "my_spreadsheet.xls";

my $xls     = Spreadsheet::ParseExcel::Simple->read( $file );
my $sheet   = [ $xls->sheets ]->[0];

while ($sheet->has_data) {

    my @data = $sheet->next_row;

    for my $datum ( @data ) {
        print decode( 'cp1250', $datum );
    }

}
Respondeu 01/10/2009 em 06:47
fonte usuário

votos
-2

Embora seja verdade que a exportação de um arquivo do Excel que contém caracteres especiais para CSV pode ser uma dor na bunda, não é no entanto um trabalho simples de contornar: basta copiar / colar as células em um Google Docs e, em seguida, salvar a partir daí.

Respondeu 14/06/2012 em 23:18
fonte usuário

votos
-3

OOXML arquivos como aqueles que vêm de Excel 2007 são codificados em UTF-8, de acordo com a wikipedia. Eu não sei sobre arquivos CSV, mas é lógico que iria usar o mesmo formato ...

Respondeu 03/02/2009 em 20:41
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more