当我们使用java代码头从linux服务器下载csv文件时,日语中的值将成为垃圾。
在窗台上跑步时效果很好。
下面是我的示例代码。
File file = File.createTempFile("temp", null);
String fileName = "Temp";
HttpServletResponse response;
CsvConfig config = new CsvConfig(',', '"', '\\');
config.setBreakString(config.getBreakString());
Csv.save(getApplicationData, file, CSVUtil.getDefaultConfig(),
new ColumnNameMappingBeanListHandler<WDTO>(WDTO.class)
.column(label 1, "Date")
.column(label 2, "Name")
.column(label 3, "description")
.column(label 4, "appName")
.column(label 5, "status"));
DownloadUtils.download(file, fileName, response);
这里,标签1、标签2等是两种语言(英语、日语)。当我们选择English时,在这两种环境下都可以正常工作(Linux、Windows)。
但当我们选择日语时,它只在窗口中正常工作,而在Linux中不工作。
附加图片显示了数据是如何得到垃圾的。
我的输出是这样显示的。
逕_隲律繝輔_繝繝_隱_譏・逕_隲玖・繧_・繧_繧_
2018年11月13日
代码中有什么问题或者有什么其他方法可以解决这个问题。
最佳答案
我发现这个问题已经解决了。我已经更改了下面的代码,标题值对于日语来说不是垃圾。
File file = File.createTempFile("temp", null);
String fileName = "Temp";
HttpServletResponse response;
CsvConfig config = new CsvConfig(',', '"', '\\');
config.setBreakString(config.getBreakString());
final OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file), "Shift_JIS");
Csv.save(getApplicationData, out , CSVUtil.getDefaultConfig(),
new ColumnNameMappingBeanListHandler<WDTO>(WDTO.class)
.column(label 1, "Date")
.column(label 2, "Name")
.column(label 3, "description")
.column(label 4, "appName")
.column(label 5, "status"));
DownloadUtils.download(file, fileName, response);
关于java - 在Java中的Linux服务器中选择日语时,下载的CSV文件头变得不完整,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53370359/