@RequestMapping(value = "exportDataTest", method = RequestMethod.GET)
@ResponseBody
public HttpServletResponse exportMeetingDataTest(HttpServletResponse response) {
final String UTF8_BOM = "\uFEFF";
List<String> list = new ArrayList<String>();
String title = UTF8_BOM + "姓名,手机号";
list.add(title);
ExportDataVo vo = new ExportDataVo();
vo.setName("张三");
vo.setUserPhone("1xxxxxxxxxx");
list.add(vo.parseString());
log.debug("<<<<<<<<list param: {}", list);
SimpleDateFormat day_sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String csvFileName = "Data_Contact_" + day_sdf.format(new Date()) + ".csv";
response.reset();
response.setContentType(MediaTypes.TEXT_CSV_UTF_8);
Servlets.setFileDownloadHeader(response, csvFileName);
OutputStream out = null;
try {
out = response.getOutputStream();
if (list != null && !list.isEmpty()) {
for (String data : list) {
out.write(data.getBytes("utf-8"));
out.write("\r".getBytes());
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.flush();
out.close();
out = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
package com.ld.admin.meeting.utils.web;
/**
* 带UTF-8 charset 定义的MediaType.
*
* Jax-RS和Spring的MediaType没有UTF-8的版本,
* Google的MediaType必须再调用toString()函数而不是常量,不能用于Restful方法的annotation。
*
*/
public class MediaTypes {
public final static String APPLICATION_XML = "application/xml";
public final static String APPLICATION_XML_UTF_8 = "application/xml; charset=UTF-8";
public final static String JSON = "application/json";
public final static String JSON_UTF_8 = "application/json; charset=UTF-8";
public final static String JAVASCRIPT = "application/javascript";
public final static String JAVASCRIPT_UTF_8 = "application/javascript; charset=UTF-8";
public final static String APPLICATION_XHTML_XML = "application/xhtml+xml";
public final static String APPLICATION_XHTML_XML_UTF_8 = "application/xhtml+xml; charset=UTF-8";
public final static String TEXT_PLAIN = "text/plain";
public final static String TEXT_PLAIN_UTF_8 = "text/plain; charset=UTF-8";
public final static String TEXT_CSV = "text/csv";
public final static String TEXT_CSV_UTF_8 = "text/csv; charset=UTF-8";
public final static String TEXT_XML = "text/xml";
public final static String TEXT_XML_UTF_8 = "text/xml; charset=UTF-8";
public final static String TEXT_HTML = "text/html";
public final static String TEXT_HTML_UTF_8 = "text/html; charset=UTF-8";
}
输出的结果: