Кодировка UTF-16 - PullRequest
       11

Кодировка UTF-16

4 голосов
/ 23 февраля 2012
<?xml version="1.0" encoding="UTF-16"?>
    <note>
        <from>Jani</from>
        <to>ALOK</to>
        <message>AshuTosh</message>
    </note>

У меня есть синтаксический анализатор XML, который поддерживает кодировку UTF-8, только если он дает исключение SAX-анализатора.Как я могу конвертировать UTF-16 в UTF-8?

1 Ответ

5 голосов
/ 23 февраля 2012

В этом случае это не используемый вами анализатор XML, см. раздел 2.2 спецификации xml :

Все процессоры XML ДОЛЖНЫ принимать UTF-8 и UTF-16 кодировок Unicode

синтаксические анализаторы Java xml обычно получают входные данные в виде объекта InputSource .Это может быть создано с помощью параметра Reader, который выполняет декодирование символов для данного набора символов.

InputStream in = ...
InputSource is = new InputSource(new InputStreamReader(in, "utf-16"));

Для "utf-16" charset поток должен начинаться с байтаотметьте порядок, если это не так, используйте "utf-16le" или "utf-16be".

...