Невозможно воспроизвести это .Следующее преобразование:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:variable name="vTest">Lots of umlauts äöü</xsl:variable>
<xsl:template match="/">
<meta name="description" content="{$vTest}"/>
</xsl:template>
</xsl:stylesheet>
при запуске с любым из следующих процессоров XSLT : MSXML3, MSXML4, MSXML6, Saxon 6.1.4, Saxon9.1.7, AltovaXML (XML-SPY), .NET XslCompiledTransform, .NET XslTransform, производит точно такой же вывод :
<meta name="description" content="Lots of umlauts äöü"/>
Возможное решение :
В вашей инструкции <xsl:output>
не используйте никакое другое значение для атрибута encoding
, кроме utf-8
.Попробуйте: <xsl:output encoding="utf-8"/>
В случае использования дополнительной сериализации (XmlWriter, TextWriter, ... и т. Д.) Результата, убедитесь, что кодировка, указанная для этого дополнительногоСериализация: utf-8
Убедитесь, что инструмент, с которым вы просматриваете результаты, использует кодировку utf-8
и его шрифт по умолчанию правильно отображает специальные символы (например,шрифт с именем Arial Unicode MS
имеет правильное представление для большинства символов Юникода).