Проблемы с кодировкой при экспорте в CSV

У меня есть список, в котором все элементы отображаются правильно с диакритическими знаками, поскольку они находятся в базе данных как локально, так и на сервере jboss.

Однако на сервере jboss, когда я пытаюсь экспортировать в формате csv, все диакритические знаки заменяются, поэтому я получаю что-то вроде Școala вместо Școala, хотя диакритические знаки отображаются правильно в списке.

Локально работает нормально как при отображении в listgrid, так и при экспорте.

Вот мой код для экспорта:

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();
}

Кроме того, в моем файле свойств jboss 7 у меня есть это:

<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>

который работает, так как списки правильно отображают диакритические знаки.

Кроме того, в моем файле web.xml для моего сервлета

<init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
</init-param>

Возможно, я на неверном пути, и это вызвано чем-то другим.

И файл, экспортированный локально, и файл, экспортированный с сервера jboss, имеют точный размер файла.

Кроме того, для моего Jboss jvm я установил свойство для java_opts

-Dfile.encoding=UTF-8

РЕДАКТИРОВАТЬ:добавил карту параметров по предложению. Еще ничего.

9
задан 18 revs, 4 users 84% 5 March 2017 в 15:08
поделиться