Tengo una lista en la que todos los elementos se muestran correctamente con diacríticos, ya que están en db tanto localmente como en el servidor jboss.Exportación a problemas de codificación CSV
Sin embargo, en el servidor jboss, cuando intento exportar como csv, todos los caracteres diacríticos son reemplazados, así que obtengo algo como Ãcocala en lugar de Şcoala, aunque los signos diacríticos se muestran correctamente en la lista de grillas.
Localmente funciona bien tanto mostrando en listgrid como exportando.
Aquí está mi código para la exportación:
private void Export() {
String exportAs = (String) m_ExportForm.getField("exportType").getValue();
FormItem item = m_ExportForm.getField("showInWindow");
boolean showInWindow = item.getValue() == null ? false : (Boolean) item.getValue();
// exportAs is either XML or CSV, which we can do with requestProperties
Map<String,String> params= new java.util.HashMap<String, String>();
params.put("Accept-Charset","utf-8");
DSRequest dsRequestProperties = new DSRequest();
dsRequestProperties.setHttpHeaders(params);
dsRequestProperties.setExportValueFields(true);
dsRequestProperties.setExportAs((ExportFormat)EnumUtil.getEnum(ExportFormat.values(), exportAs));
dsRequestProperties.setExportDisplay(showInWindow ? ExportDisplay.WINDOW : ExportDisplay.DOWNLOAD);
// TODO: move in user-config
dsRequestProperties.setExportTitleSeparatorChar("_");
dsRequestProperties.setExportDelimiter(";");
dsRequestProperties.setExportFilename("export." + extensionsValueMap.get(exportAs));
dsRequestProperties.setContentType("text/csv; charset=UTF-8");
m_Target.Export(dsRequestProperties);
Close();
}
Además, en mi archivo de propiedades JBoss 7 tengo esto:
<system-properties>
<property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
<property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>
que funciona como los listgrids muestran signos diacríticos correctamente.
Además, en mi web.xml tengo para mi servlet
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
tal vez estoy en un camino equivocado y esto es causado por algo más.
Tanto el archivo exportado localmente como el archivo exportado desde el servidor jboss tienen el tamaño de archivo exacto.
Además, para mi JVM Jboss que establece la propiedad de JAVA_OPTS
-Dfile.encoding=UTF-8
EDIT: añade el mapa params debido a la sugestión. Aún nada.
¿Puede ser que esto pueda darle una idea? https://community.jboss.org/message/646601 – Phani
Capture los encabezados de solicitud y respuesta HTTP y publíquelos. Además, publique los tamaños de archivo en bytes del CSV que descarga ese trabajo y el que tiene '??'. –