Я использую xsl для управления выходом моего xml файла, но добавляется символ спецификации.
Как удалить символ спецификации из моего xml файла
Ответ 1
# vim file.xml
:set nobomb
:wq
Ответ 2
File BOM Detector (бесплатное программное обеспечение для Windows) упрощает удаление знака порядка байтов.
Ответ 3
просто нужно добавить это в свой файл xslt:
<xsl:output method="text"
encoding="ASCII"/>
Ответ 4
Просто разделите первые два байта с помощью любого шестнадцатеричного редактора.
Ответ 5
Удалить символ спецификации из строки с помощью XSLT довольно просто:
<xsl:value-of select="translate(StringWithBOM,'','')"/>
Ответ 6
У меня создалось впечатление, что XML рекомендуется записывать в Unicode, в некоторых кодировках Unicode, и что определенные кодировки Unicode указаны так, чтобы содержать начальный знак байтового байта. Без этой метки байта ваш файл больше не будет правильно закодирован в кодировке Unicode и, следовательно, больше не будет исправлять XML. Процессоры XML поощряются к неумолимости, чтобы немедленно сбой при малейшей ошибке (например, некорректная кодировка Unicode). Какие процессоры XML вы хотите сломать?
Очевидно, что удаление символа байтового байта из кодированного документа UTF-8 делает этот документ как кодированный ASCII (не Unicode), а некоторые текстовые процессоры способны использовать только кодированные ASCII документы. Это то, с чем вы работаете?
Ответ 7
Какая выходная кодировка используется вашим XSL-набором? Какая кодировка является входным документом? Откуда поступает вход, и где он был сохранен/выгружен/загружен в настоящее время?
XML и XSL должны по умолчанию использовать UTF-8, если ничего не указано. Но, очевидно, здесь что-то не так.
Одна вещь, которая может случиться, заключается в том, что XML обслуживается веб-сервером, который по умолчанию установлен в ISO-8859-1, довольно хорошем стандартном стандарте... pre-Unicode.
Немного не по теме, но Джоэл очень поучительная статья об текстовых кодировках была для меня откровением. Есть много людей, которые в тоже время очень умны в программировании, но которые упорствуют в том, чтобы мыслить там нечто вроде "простого текста" или называть их текст "ASCII" или "ANSI". Это проблема, с которой вам действительно нужно справиться, если вы еще этого не сделали.