我有一个关于如何将汉字写到jexcel中的问题。
这是我的代码..
nameChinese取自mysql数据库。
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
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();发布于 2012-02-18 04:51:30
我对jExcelAPI了解不多,但我怀疑你的部分问题是你对字符串的处理……
Java中的字符串具有UTF-16的内部表示形式。在getNameChinese方法中执行的转换将破坏US-ASCII码以外的任何字符的显示。(中文字符是!)
我将遍历您的代码,这样我就可以说明这个问题。同时,为了便于讨论,我假设您的MySQL数据库中正确地存储和检索了nameChinese。(但这是字符编码问题的另一个非常简单的来源)。
让我们假设nameChinese="汉"
nameChinese.getBytes("UTF-8")产生一个3字节的数组0xE6,0xB1,0x89
如果将从数据库检索到的字符串直接放入jExcelAPI中,会发生什么情况?
https://stackoverflow.com/questions/9334152
复制相似问题