Pergunta

Estou desenvolvendo um aplicativo java que exporta dados para arquivos CSV, destinado a ser aberto no Excel pelos usuários finais. Nós só notei que a função de exportação usa a codificação padrão da plataforma de Java. Este causas trema caracteres a ser perdido e teste de unidade falhar no servidor de compilação (que está configurado para ter US-ASCII como padrão plataforma de codificação exatamente para pegar esses problemas potenciais).

A pergunta é: o que seria a melhor codificação de usar? Como o Excel determinar qual codificação de usar? Ele usa específico da plataforma algo que presumivelmente corresponde padrão plataforma de Java?

Atualmente estou inclinado para codificar Cp1252 - que deve cobrir as máquinas de destino (o ambiente de implantação é realmente especificado) e iria resolver o problema de teste. De pesquisando em torno, o Excel não parecem lidar com UTF-8 bem, de modo que está fora, e aderindo a codificação plataforma padrão exigiria algum tipo de truque solução alternativa para os testes.

Foi útil?

Solução

Eu esperaria Excel para trabalhar bem com a codificação plataforma padrão, então furar com que parece ser a melhor escolha para Excel no caso geral. Verificando o padrão plataforma é US-ASCII e usando Cp1252 vez (eu acho que o hack para os testes) seria o equivalente conceitual de suprimir um aviso do compilador. Você sabe que não se aplica neste caso.

No entanto, desde que você escrever isso que você controlar a implantação de produção, por que você hesita em código rígido Cp1252? Parece uma solução perfeitamente razoável se que é a codificação alvo da aplicação.

Outras dicas

Você pode obter localidade do sistema (a partir de propriedades do sistema) e criar arquivo de saída com essa codificação. Se os seus arquivos serão abertos apenas em excel pode ser que você precisa tomar olhar para o Apache POI?

Pense Excel funciona bem com UTF-16. O que há de errado com a exportação em UTF-16. Pelo menos que os personagens maneira não-ascii serão preservados, em vez de simplesmente jogá-los fora.

Editar, ok, 'bem' pode exagerar como o Excel trabalha com UTF-16, mas ainda parece que UTF-16LE funciona melhor do que UTF-8

UTF-8 trabalho deve bem agora. Eu raspei produtos, em seguida, salvá-los como CSV, use WP Todos Import depois enviar este CSV, todos esses convertidos para XML, em seguida, todos carregados como mensagens WP. Ótimo! Dê uma olhada na jam tangan casio

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top