首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将汉字写入jexcelapi

将汉字写入jexcelapi
EN

Stack Overflow用户
提问于 2012-02-18 03:27:23
回答 1查看 293关注 0票数 0

我有一个关于如何将汉字写到jexcel中的问题。

这是我的代码..

nameChinese取自mysql数据库。

代码语言:javascript
复制
public String getNameChinese(String nameChinese)
{
String strNameChinese = "";

        try
        {
            strNameChinese = new String(nameChinese.getBytes("utf-8"), "iso-8859-1");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            return strNameChinese;
        }
    }// getNameChinese()

Excel.java

代码语言:javascript
复制
Workbook workbook = Workbook.getWorkbook(new File(templatePath)); 
WritableWorkbook copy = Workbook.createWorkbook(new File(resultPath + resultFileName), workbook); 

WritableSheet sheet = copy.getSheet(0);

Label nameLabel = new Label(1, currentIndex, getNameChinese(), normalAllSideWarpFormat);
sheet.addCell(nameLabel);

copy.write();
copy.close();
EN

回答 1

Stack Overflow用户

发布于 2012-02-18 04:51:30

我对jExcelAPI了解不多,但我怀疑你的部分问题是你对字符串的处理……

Java中的字符串具有UTF-16的内部表示形式。在getNameChinese方法中执行的转换将破坏US-ASCII码以外的任何字符的显示。(中文字符是!)

我将遍历您的代码,这样我就可以说明这个问题。同时,为了便于讨论,我假设您的MySQL数据库中正确地存储和检索了nameChinese。(但这是字符编码问题的另一个非常简单的来源)。

让我们假设nameChinese=""

  • nameChinese.getBytes("UTF-8")产生一个3字节的数组0xE6,0xB1,0x89

  • This字节数组,解释为
  1. 产生字符“??”(最后一个实际上不是可打印字符?,而是一个控制字符)。

如果将从数据库检索到的字符串直接放入jExcelAPI中,会发生什么情况?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9334152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档