Я предполагаю, что XML не должным образом в кодировке UTF-8. Пожалуйста, покажите байтов в элементе <shortest>
в необработанном файле ... Я подозреваю, вы обнаружите, что они не являются правильно закодированными символами. Если бы вы могли показать короткую, но полную программу, которая генерирует этот XML из правильного ввода, это было бы очень полезно. (Желательно сказать, что это за платформа:)
РЕДАКТИРОВАТЬ: В этом файле происходит нечто очень странное. Вот шестнадцатеричные значения для «коротких» и «самых коротких» значений:
Короче: C3 96 72 77 69 63
Самый короткий: EF BF BD 2E
Теперь "C3 96" - это действительная кодировка UTF-8 для U + 00D6, которая, как вы хотите, является "латинской заглавной буквой O с диарезом".
Однако, EF BF BD - это кодировка UTF-8 для U + FFFD, которая является «символом замены» - определенно не , что вы хотите. (2E - это просто точка ASCII.)
Итак, это действительно допустимый UTF-8 - но он не содержит символов, которые вы хотите. Опять же, вы должны изучить, что создало файл ...