Я не знаю много о jExcelAPI, но я подозреваю, что отчасти ваша проблема связана с обработкой строк ...
Строка в Java имеет внутреннее представление UTF-16. Преобразование, которое вы выполняете в вашем методе getNameChinese, разрушит отображение любого символа за пределами US-ASCII. (и китайские иероглифы есть!).
Я рассмотрю ваш код, чтобы проиллюстрировать эту проблему. Тем временем, ради аргумента, я предполагаю, что nameChinese правильно хранится и извлекается из вашей базы данных MySQL. (Но это еще один очень легкий источник проблем с кодировкой символов).
- Предположим, что nameChinese = " 汉 "
nameChinese.getBytes("UTF-8")
возвращает массив из 3 байтов 0xE6,0xB1,0x89
- Этот массив байтов, интерпретируемый как ISO-8859-1 , дает символы "æ ±?" (последний на самом деле не печатный символ? Это скорее управляющий символ).
Что произойдет, если вы поместите полученную из базы данных строку непосредственно в jExcelAPI?