Невозможно напечатать специальные (не английские) символы (латинские, немецкие и т. д.) в XML с использованием XSL

У меня есть XML-файл, содержащий некоторые специальные (не английские) символы, такие как š, ý и т. д. Как я могу обрабатывать специальные символы в XSL?

Когда я использовал кодировку UTF-8 в своей программе, файл XML был сгенерирован, но я не смог открыть файл XML, так как в нем есть некоторые ненужные данные вместо специального символа. Позже я изменил кодировку на ISO_8859-1/ISO-8859-1 и сгенерировал XML, на этот раз я смог просмотреть данные XML, но данные/имя появились как «Ale?, Rodý» вместо «Aleš, Rodý». .

Буква - "š" заменена на "?" и "ý" напечатаны правильно.

Как я могу напечатать неанглийские символы в XML с помощью XSL?

Примечание. Я написал код XSL в пакете приложения (PeopleSoft)> класс приложения (PeopleCode) для создания файла XML. Я вызываю этот класс приложения, используя программу Transform Application Engine. Файл XML связан с файлом банковских платежей.


person Sai    schedule 10.12.2018    source источник
comment
Как именно вы пишете и читаете файл? Я только что протестировал движок приложения, и у меня нет проблем с записью строки Aleš, Rodý при использовании кодировки UTF8.   -  person Based    schedule 10.12.2018
comment
Это как-то связано с PeopleSoft? Вы отметили его, но в вопросе об этом ничего не упоминается.   -  person James Z    schedule 10.12.2018
comment
Я вызываю класс приложения, используя программу Transform Application Engine. Я написал код XSL в классе Application (PeopleCode) для создания XML-файла. Дайте мне знать, если вам нужна дополнительная информация. Кстати, файл XML связан с файлами банковских платежей.   -  person Sai    schedule 11.12.2018


Ответы (1)


Если фактическая кодировка неанглийских символов совпадает с кодировкой, указанной в объявлении XML, и если используемый вами анализатор XML поддерживает эту кодировку, у вас вообще не должно возникнуть никаких проблем.

Если в начале файла нет XML-объявления, вам нужно указать синтаксическому анализатору XML, какую кодировку следует использовать при анализе файла, что означает, что вам нужно знать фактическую кодировку.

Если входные данные закодированы неправильно, например, если есть неправильное объявление XML или если разные символы появляются в разных кодировках, вам необходимо исправить это, прежде чем пытаться обрабатывать данные с помощью XSLT или любой другой технологии.

Сначала установите, какая последовательность октетов используется для представления символов, просмотрев двоичный/шестнадцатеричный дамп содержимого файла; затем установите, что это говорит вам о кодировке файла. Если кодировка неверна или непоследовательна, отследите данные до их происхождения, чтобы выяснить, как произошло повреждение, и устраните основную причину. Если вы не можете устранить основную причину, тогда (и только тогда) рассмотрите возможность написания собственного кода для устранения ущерба. Это может означать, например, добавление или замену объявления XML, которое правильно объявляет кодировку файла.

person Michael Kay    schedule 10.12.2018