简体   繁体   中英

Grabbing a non-english character in jexcelapi

I have an excel sheet with some non-english characters in it and when I try to grab the contents via

sheet.getColumn(column)[row].getContents()

It returns the string with the replacement character \� instead of the non-english character which I was going to then translate to unicode using StringEscapeUtils.escapeJava.

//"L\u00F6schen" - correct
return StringEscapeUtils.escapeJava("Löschen"); 

//"L\uFFFDschen" - incorrect
return StringEscapeUtils.escapeJava(sheet.getColumn(column)[row].getContents());

//"L�schen" - incorrect
System.out.print(sheet.getColumn(column)[row].getContents());

This was really frustrating and it seems that jexcelapi is missing a lot of support.

Went with Apache POI instead and it worked great with no issues.

Try to set encoding through WorkbookSettings when initializing Workbook. For example:

WorkbookSettings settings = new WorkbookSettings();
settings.setEncoding("Your java charset name");
Workbook workbook = Workbook.getWorkbook(source, settings);

Then getContents() method should correct content of cell

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM