我有一个列表网格,其中所有项目都用变音符号正确显示,因为它们在本地和 jboss 服务器上的 db 中。
但是,在 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 中,我的 servlet
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
也许我走错了路,这是由其他原因引起的。
本地导出的文件和从 jboss 服务器导出的文件都具有准确的文件大小。
另外,对于我的 Jboss jvm,我设置了 java_opts 的属性
-Dfile.encoding=UTF-8
编辑:由于建议添加了参数映射。依然没有。