「java生成表格中文乱码」java文件中文乱码

博主:adminadmin 2022-11-27 06:02:08 66

本篇文章给大家谈谈java生成表格中文乱码,以及java文件中文乱码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何解决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文件中文乱码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。