我用 poi 的 HSSFCell 的 setCellValue() 方法写excel的单元格时,当写入的数据为中文时,显示为乱码。我用String的构造函数,将字符集转换成gb2312时,乱码变为“????”,代码为
   String test = "中文";
   test = new String(test.getBytes("iso8859-1"), "gb2312");
   
   HSSFSheet sheet = wb.createSheet("new sheet");
   HSSFRow row = sheet.createRow((short)0);
   
   row.createCell((short)0).setCellValue(test);   请问这个问题应该如何解决?
   急!!!

解决方案 »

  1.   

    HSSFCell csCell =row.createCell((short)5);
    csCell.setEncoding(HSSFCell.ENCODING_UTF_16);
    csCell.setCellValue("java咖啡");
      

  2.   

    csCell.setEncoding(HSSFCell.ENCODING_UTF_16);//设置cell编码解决中文高位字节截断
        csCell.setCellValue("中文测试_Chinese Words Test");//设置中西文结合字符串
      

  3.   

    每个setCellValue()的参数为中文的,都需要setEncoding(HSSFCell.ENCODING_UTF_16)一次才可以