2010-09-19 3 views

ответ

4

Это может быть правильно, но вы считаете, что маршаллированный XML с неправильной кодировкой (вы просматриваете UTF-8 как ISO-8859-1/расширенный ASCII).

Я бы дважды проверял кодировки символов и что вы просматриваете маршаллированный XML с правильной кодировкой.

Пример: é в UTF-8, представленного на два байта: 0xC30xA9http://www.fileformat.info/info/unicode/char/00e9/index.htm

Эти два байта, представленные в, например, ISO-8859-1 будет следующим образом:

Если вы создаете текстовый файл, содержащий ушного и сохранить его как UTF-8. Повторно откройте файл, но выберите кодировку ISO-8859-1, и вы увидите то же самое.

+1

Что вы подразумеваете под «кодировкой символов с двойной проверкой»? – Roman

+0

Если JAXB2 генерирует XML с символами enocded с UTF-8, вы должны убедиться, что он не просматривается/не обрабатывается как данные с другой кодировкой. Это означает, что ваша терминальная кодировка должна быть UTF-8 (если вы печатаете XML-код на свой терминал). Тот, кто получает/анализирует XML, должен также рассматривать его как UTF-8. Я подозреваю, что если вы сделаете JAXB2 unmarshal тем же самым XML, все будет хорошо. – andrel

+0

:) Нет, я не вижу мой xml в терминале. Я рассматриваю xml в браузере с помощью utf-8. Мне нужно замаскировать каждую из умлаутов в формат &#xxx; перед рендерингом/сортировкой. Это работает! – Roman

Смежные вопросы