Как удалить пространство имен и использовать кодировку UTF-8 No BOM в XML

Мне нужно создать файл без пространства имен и использовать UTF-8 без спецификации, чтобы WMS мог прочитать файл. (Мне нужно было добавить пространство имен для сопоставления, потому что целевая схема не уникальна)

Я создал собственный конвейер отправки, который собирает XML, а затем удаляет пространство имен (с помощью компонента ESB Remove Namespace)

Я настроил его таким образом, чтобы предположить, что спецификация должна быть удалена, но когда я проверяю исходящий файл, он меняется на файл ANSI (но я специально говорю, что кодировка UTF-8 в компоненте конвейера)

Я делаю что-то неправильно? есть ли лучшая альтернатива этому?

введите описание изображения здесь

введите описание изображения здесь

1 ответ

Решение

Компонент конвейера, вероятно, работает нормально и уже выполняет свою работу по удалению спецификации и кодированию в UTF-8.

Ваш второй скриншот показывает Notepad++. Функция "Кодировать в" в Notepad ++ позволяет отображать содержимое вашего файла в определенной кодировке.

Однако это не детектор кодирования. Определение кодировки может быть сложной задачей, особенно когда файл не имеет спецификации, поскольку некоторые кодировки имеют сходство (пример: 128 первых символов UTF-8 совпадают с ASCII).

Содержит ли ваш входной файл какой-либо символ, закодированный уникальным для UTF-8 способом? Это может быть хорошим тестом.

Другие вопросы по тегам