Excel в XML, вопрос кодировки - PullRequest
1 голос
/ 18 сентября 2009

Это все смешалось в моей голове, и я не могу обернуть голову вокруг этого.

У меня есть файл Excel, который я должен проанализировать, используя Java, и перевести на XML. Используя библиотеку jExcel, я могу выполнить синтаксический анализ, и приложение выполняет правильную работу и размещает правильные строки в нужном месте. Итак, что касается разбора, я покрыл это.

Проблема возникает, когда я пытаюсь перекодировать файл в UTF-8.

Я предположил, что кодировкой для файла Excel было ISO-8859-1, но я не совсем уверен, так ли это. Затем я использую эту функцию перед добавлением моей строки в XML-файл.

private static String isoToUtf(String thingie){
        byte[] bytedata = thingie.getBytes() ; // Comes in ISO form, as the character set in the DB is set to ISO

        Charset iso = Charset.forName("ISO-8859-1");
        CharsetDecoder isodecoder = iso.newDecoder();
        ByteBuffer bbuf = ByteBuffer.wrap(bytedata);
        CharBuffer cbuf = isodecoder.decode(bbuf);  // Decode from ISO to UTF-16


        Charset utf8 = Charset.forName("UTF-8");
        CharsetEncoder utf8encoder = utf8.newEncoder();
        ByteBuffer outbuffer = utf8encoder.encode(cbuf);  // Encode from UTF-16 to UTF-8
        return new String(outbuffer.array(), "UTF-8");
    }

Но почему-то это не работает. Я все еще теряю некоторых персонажей из-за коррупции.

Кроме того: я абсолютно обязан сделать это таким образом, это должно в конечном итоге отображаться на трубках.

Файл Excel открывается с использованием класса java.io.File.

1 Ответ

1 голос
/ 18 сентября 2009

Любой, кто находится в той же ситуации, что и я, может указать параметры рабочей книги, которую вы создадите с помощью библиотеки jExcel.

По следующей ссылке я нашел свои ответы.

http://jexcelapi.sourceforge.net/resources/javadocs/2_6_10/docs/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...