「java生成表格中文乱码」java文件中文乱码
本篇文章给大家谈谈java生成表格中文乱码,以及java文件中文乱码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何解决java生成Excel时内容乱码?
- 2、java生成excel命名为什么不能为中文
- 3、java生成 csv excel 乱码怎么办
- 4、java poi导出excel乱码
- 5、java 导出 Excel 中文乱码
- 6、java打开excel乱码
如何解决java生成Excel时内容乱码?
是你生成 Excel 的代码出了问题,而不是数据库取出来的地方出了问题。
你把生成 Excel 的代码贴上来看下,应该是有个地方需要设置 Excel 的文件输出编码而你没有设置使用了默认的编码了。
java生成excel命名为什么不能为中文
没有太多原因,POI就是如此;再说导出的EXCEL文件名的中文乱码问题, 导出时代码如下:
.....
this.getResponse().reset();
this.getResponse().setContentType("application/msexcel");
this.getResponse().setHeader("Content-Disposition", "inline;filename=中文名.xls");
try {
em.getExcelMutliIO(this.getResponse().getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这个时候导出去时,文件名会为乱码,解决的办法如下,在你的代码增加下列函数:
public static String toUtf8String(String s){
StringBuffer sb = new StringBuffer();
for (int i=0;is.length();i++){
char c = s.charAt(i);
if (c = 0 c = 255){sb.append(c);}
else{
byte[] b;
try { b = Character.toString(c).getBytes("utf-8");}
catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j b.length; j++) {
int k = b[j];
if (k 0) k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
然后在导出时,对文件名引用该函数,代码如下:
this.getResponse().setHeader("Content-Disposition", "inline;filename=" +toUtf8String("中文文件名.xls"));
java生成 csv excel 乱码怎么办
准备一个有乱码的CSV文件用于演示,如图。
首先我们右键此CSV文件,选择“用记事本打开”
打开后,点击“文件”--“另存为”。
我们发现默认编码是“UTF-8”,所以一些Excel表格软件就会显示乱码。对于这样,我们只要改成ANSI就行了,按确定。
5
用Excel表格软件再打开,就不会显示乱码了。
java poi导出excel乱码
在不同的系统下字符集的编码有可能不一样,windows系统中从程序到底层是从unicode编码进行转换,unix系统下就不一定是从unicode编码开始转换的,支不支持unicode编码我也不知道,我估计就是系统的字符集编码不同的问题
java 导出 Excel 中文乱码
HSSFCell csCell = row.createCell((short) 1);
csCell.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置cell编码解决中文高位字节截断
csCell.setCellValue("中文测试");// 设置中文
java打开excel乱码
HSSFWorkbook workbook = new HSSFWorkbook();//创建EXCEL文件
HSSFSheet sheet= workbook.createSheet(sheetName); //创建工作表
这样在用英文名作为工作表名是没问题的,但如果sheetName是中文字符,就会出现乱码,解决的方法如下代码:
HSSFSheet sheet= workbook.createSheet();
workbook.setSheetName(0, sheetName,(short)1); //这里(short)1是解决中文乱码的关键;而第一个参数是工作表的索引号。
没有太多原因,POI就是如此;再说导出的EXCEL文件名的中文乱码问题, 导出时代码如下:
.....
this.getResponse().reset();
this.getResponse().setContentType("application/msexcel");
this.getResponse().setHeader("Content-Disposition", "inline;filename=中文名.xls");
try {
em.getExcelMutliIO(this.getResponse().getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这个时候导出去时,文件名会为乱码,解决的办法如下,在你的代码增加下列函数:
public static String toUtf8String (String s){
StringBuffer sb = new StringBuffer();
for (int i=0;is.length();i++){
char c = s.charAt(i);
if (c = 0 c = 255){sb.append(c);}
else{
byte[] b;
try { b = Character.toString(c).getBytes("utf-8");}
catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j b.length; j++) {
int k = b[j];
if (k 0) k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
然后在导出时,对文件名引用该函数,代码如下:
this.getResponse().setHeader("Content-Disposition", "inline;filename=" +toUtf8String("中文文件名.xls"));
关于java生成表格中文乱码和java文件中文乱码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-27,除非注明,否则均为
原创文章,转载请注明出处。