Pregunta

Estoy desarrollando una aplicación java que exporta datos a archivos CSV, que los usuarios finales abrirán en Excel. Acabamos de notar que la función de exportación utiliza la codificación predeterminada de la plataforma de Java. Esto hace que se pierdan los caracteres de diéresis y que la prueba de la unidad falle en el servidor de compilación (que está configurado para tener US-ASCII como su codificación predeterminada de la plataforma exactamente para detectar dichos problemas potenciales).

La pregunta es: ¿cuál sería la mejor codificación para usar? ¿Cómo determina Excel qué codificación usar? ¿Utiliza algo específico de la plataforma que presumiblemente coincide con la plataforma predeterminada de Java?

Actualmente me estoy inclinando por la codificación Cp1252, que debería cubrir las máquinas de destino (el entorno de implementación está realmente especificado) y solucionaría el problema de la prueba. Al buscar en Google, Excel no parece manejar bien UTF-8, por lo que está fuera, y mantener la codificación predeterminada de la plataforma requeriría algún tipo de truco para las pruebas.

¿Fue útil?

Solución

Espero que Excel funcione bien con la codificación predeterminada de la plataforma, por lo que mantenerla parece ser la mejor opción para Excel en el caso general. Verificar si el valor predeterminado de la plataforma es US-ASCII y usar Cp1252 en su lugar (supongo que el truco para las pruebas) sería el equivalente conceptual de suprimir una advertencia del compilador. Sabes que no se aplica en este caso.

Sin embargo, dado que escribe que controla el despliegue de producción, ¿por qué duda en codificar Cp1252? Parece una solución perfectamente razonable si esa es la codificación de destino de la aplicación.

Otros consejos

Puede obtener la configuración regional del sistema (de las propiedades del sistema) y crear un archivo de salida con esa codificación. Si sus archivos se abrirán solo en Excel, ¿es posible que necesite ver Apache POI?

Think Excel funciona bien con UTF-16. ¿Qué hay de malo en exportar en UTF-16? Al menos de esa manera, se conservarán los caracteres que no son ascii, en lugar de simplemente tirarlos.

Editar, ok, 'bueno' podría exagerar cómo funciona excel con UTF-16, pero parece que UTF-16LE funciona mejor que UTF-8

UTF-8 Debería funcionar bien ahora. Raspé productos y luego los guardé como CSV, utilicé WP All Import y luego cargué este CSV, todo esto se convierte a XML y luego todo se cargó como publicaciones de WP. ¡Genial! Eche un vistazo a jam tangan casio

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top